diff --git a/spring-mvc-java/pom.xml b/spring-mvc-java/pom.xml
index e796099190..33d6306c5a 100644
--- a/spring-mvc-java/pom.xml
+++ b/spring-mvc-java/pom.xml
@@ -194,7 +194,6 @@
cargo-maven2-plugin
${cargo-maven2-plugin.version}
- true
jetty8x
embedded
diff --git a/spring-mvc-java/src/main/java/com/baeldung/model/Company.java b/spring-mvc-java/src/main/java/com/baeldung/model/Company.java
new file mode 100644
index 0000000000..558507268a
--- /dev/null
+++ b/spring-mvc-java/src/main/java/com/baeldung/model/Company.java
@@ -0,0 +1,38 @@
+package com.baeldung.model;
+
+public class Company {
+
+ private long id;
+ private String name;
+
+ public Company() {
+ super();
+ }
+
+ public Company(final long id, final String name) {
+ this.id = id;
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(final long id) {
+ this.id = id;
+ }
+
+ @Override
+ public String toString() {
+ return "Company [id=" + id + ", name=" + name + "]";
+ }
+
+}
diff --git a/spring-mvc-java/src/main/java/com/baeldung/model/Employee.java b/spring-mvc-java/src/main/java/com/baeldung/model/Employee.java
index d0f6b724eb..fb0a452219 100644
--- a/spring-mvc-java/src/main/java/com/baeldung/model/Employee.java
+++ b/spring-mvc-java/src/main/java/com/baeldung/model/Employee.java
@@ -8,15 +8,17 @@ public class Employee {
private long id;
private String name;
private String contactNumber;
+ private String workingArea;
public Employee() {
super();
}
- public Employee(final long id, final String name, final String contactNumber) {
+ public Employee(final long id, final String name, final String contactNumber, final String workingArea) {
this.id = id;
this.name = name;
this.contactNumber = contactNumber;
+ this.workingArea = workingArea;
}
public String getName() {
@@ -43,9 +45,17 @@ public class Employee {
this.contactNumber = contactNumber;
}
+ public String getWorkingArea() {
+ return workingArea;
+ }
+
+ public void setWorkingArea(final String workingArea) {
+ this.workingArea = workingArea;
+ }
+
@Override
public String toString() {
- return "Employee [id=" + id + ", name=" + name + ", contactNumber=" + contactNumber + "]";
+ return "Employee [id=" + id + ", name=" + name + ", contactNumber=" + contactNumber + ", workingArea=" + workingArea + "]";
}
}
diff --git a/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebConfig.java b/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebConfig.java
index ba7f35fd65..663b9cc4d2 100644
--- a/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebConfig.java
+++ b/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebConfig.java
@@ -13,12 +13,14 @@ import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;
import org.springframework.web.servlet.view.ResourceBundleViewResolver;
import org.springframework.web.servlet.view.XmlViewResolver;
+import org.springframework.web.util.UrlPathHelper;
@Configuration
@EnableWebMvc
@@ -96,4 +98,12 @@ public class WebConfig extends WebMvcConfigurerAdapter {
return list;
}
+
+ @Override
+ public void configurePathMatch(final PathMatchConfigurer configurer) {
+ final UrlPathHelper urlPathHelper = new UrlPathHelper();
+ urlPathHelper.setRemoveSemicolonContent(false);
+
+ configurer.setUrlPathHelper(urlPathHelper);
+ }
}
diff --git a/spring-mvc-java/src/main/java/com/baeldung/web/controller/CompanyController.java b/spring-mvc-java/src/main/java/com/baeldung/web/controller/CompanyController.java
new file mode 100644
index 0000000000..8228eafd5c
--- /dev/null
+++ b/spring-mvc-java/src/main/java/com/baeldung/web/controller/CompanyController.java
@@ -0,0 +1,56 @@
+package com.baeldung.web.controller;
+
+import com.baeldung.model.Company;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Controller
+public class CompanyController {
+
+ Map companyMap = new HashMap<>();
+
+ @RequestMapping(value = "/company", method = RequestMethod.GET)
+ public ModelAndView showForm() {
+ return new ModelAndView("companyHome", "company", new Company());
+ }
+
+ @RequestMapping(value = "/company/{Id}", produces = { "application/json", "application/xml" }, method = RequestMethod.GET)
+ public @ResponseBody Company getCompanyById(@PathVariable final long Id) {
+ return companyMap.get(Id);
+ }
+
+ @RequestMapping(value = "/addCompany", method = RequestMethod.POST)
+ public String submit(@ModelAttribute("company") final Company company, final BindingResult result, final ModelMap model) {
+ if (result.hasErrors()) {
+ return "error";
+ }
+ model.addAttribute("name", company.getName());
+ model.addAttribute("id", company.getId());
+
+ companyMap.put(company.getId(), company);
+
+ return "companyView";
+ }
+
+ @RequestMapping(value = "/companyEmployee/{company}/employeeData/{employee}", method = RequestMethod.GET)
+ @ResponseBody
+ public ResponseEntity