JAVA-3525: Moved spring-mvc-java-2 inside spring-web-modules
This commit is contained in:
Vendored
+54
@@ -0,0 +1,54 @@
|
||||
package com.baeldung.cache;
|
||||
|
||||
import org.springframework.http.CacheControl;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.context.request.WebRequest;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Controller
|
||||
public class CacheControlController {
|
||||
|
||||
@GetMapping(value = "/hello/{name}")
|
||||
public ResponseEntity<String> hello(@PathVariable String name) {
|
||||
CacheControl cacheControl = CacheControl.maxAge(60, TimeUnit.SECONDS)
|
||||
.noTransform()
|
||||
.mustRevalidate();
|
||||
return ResponseEntity.ok()
|
||||
.cacheControl(cacheControl)
|
||||
.body("Hello " + name);
|
||||
}
|
||||
|
||||
@GetMapping(value = "/home/{name}")
|
||||
public String home(@PathVariable String name, final HttpServletResponse response) {
|
||||
response.addHeader("Cache-Control", "max-age=60, must-revalidate, no-transform");
|
||||
return "home";
|
||||
}
|
||||
|
||||
@GetMapping(value = "/login/{name}")
|
||||
public ResponseEntity<String> intercept(@PathVariable String name) {
|
||||
return ResponseEntity.ok().body("Hello " + name);
|
||||
}
|
||||
|
||||
@GetMapping(value = "/productInfo/{name}")
|
||||
public ResponseEntity<String> validate(@PathVariable String name, WebRequest request) {
|
||||
|
||||
ZoneId zoneId = ZoneId.of("GMT");
|
||||
long lastModifiedTimestamp = LocalDateTime.of(2020, 02, 4, 19, 57, 45)
|
||||
.atZone(zoneId).toInstant().toEpochMilli();
|
||||
|
||||
if (request.checkNotModified(lastModifiedTimestamp)) {
|
||||
return ResponseEntity.status(304).build();
|
||||
}
|
||||
|
||||
return ResponseEntity.ok().body("Hello " + name);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package com.baeldung.cache;
|
||||
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.CacheControl;
|
||||
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
import org.springframework.web.servlet.mvc.WebContentInterceptor;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@EnableWebMvc
|
||||
@Configuration
|
||||
@ComponentScan(basePackages = {"com.baeldung.cache"})
|
||||
public class CacheWebConfig implements WebMvcConfigurer {
|
||||
|
||||
@Override
|
||||
public void addViewControllers(final ViewControllerRegistry registry) {
|
||||
registry.addViewController("/").setViewName("index");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
|
||||
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/")
|
||||
.setCacheControl(CacheControl.maxAge(60, TimeUnit.SECONDS)
|
||||
.noTransform()
|
||||
.mustRevalidate());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInterceptors(InterceptorRegistry registry) {
|
||||
WebContentInterceptor interceptor = new WebContentInterceptor();
|
||||
interceptor.addCacheMapping(CacheControl.maxAge(60, TimeUnit.SECONDS)
|
||||
.noTransform()
|
||||
.mustRevalidate(), "/login/*");
|
||||
registry.addInterceptor(interceptor);
|
||||
}
|
||||
}
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
package com.baeldung.datetime;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.format.datetime.DateFormatter;
|
||||
import org.springframework.format.datetime.DateFormatterRegistrar;
|
||||
import org.springframework.format.datetime.standard.DateTimeFormatterRegistrar;
|
||||
import org.springframework.format.number.NumberFormatAnnotationFormatterFactory;
|
||||
import org.springframework.format.support.DefaultFormattingConversionService;
|
||||
import org.springframework.format.support.FormattingConversionService;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
|
||||
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
@Configuration
|
||||
public class DateTimeConfig extends WebMvcConfigurationSupport {
|
||||
|
||||
@Bean
|
||||
@Override
|
||||
public FormattingConversionService mvcConversionService() {
|
||||
DefaultFormattingConversionService conversionService = new DefaultFormattingConversionService(false);
|
||||
|
||||
conversionService.addFormatterForFieldAnnotation(new NumberFormatAnnotationFormatterFactory());
|
||||
|
||||
DateTimeFormatterRegistrar dateTimeRegistrar = new DateTimeFormatterRegistrar();
|
||||
dateTimeRegistrar.setDateFormatter(DateTimeFormatter.ofPattern("dd.MM.yyyy"));
|
||||
dateTimeRegistrar.setDateTimeFormatter(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"));
|
||||
dateTimeRegistrar.registerFormatters(conversionService);
|
||||
|
||||
DateFormatterRegistrar dateRegistrar = new DateFormatterRegistrar();
|
||||
dateRegistrar.setFormatter(new DateFormatter("dd.MM.yyyy"));
|
||||
dateRegistrar.registerFormatters(conversionService);
|
||||
|
||||
return conversionService;
|
||||
}
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.baeldung.datetime;
|
||||
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
@RestController
|
||||
public class DateTimeController {
|
||||
|
||||
@PostMapping("/date")
|
||||
public void date(@RequestParam("date") @DateTimeFormat(pattern = "dd.MM.yyyy") Date date) {
|
||||
// ...
|
||||
}
|
||||
|
||||
@PostMapping("/localdate")
|
||||
public void localDate(@RequestParam("localDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate localDate) {
|
||||
// ...
|
||||
}
|
||||
|
||||
@PostMapping("/localdatetime")
|
||||
public void dateTime(@RequestParam("localDateTime") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime localDateTime) {
|
||||
// ...
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.baeldung.matrix.config;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
import org.springframework.web.util.UrlPathHelper;
|
||||
|
||||
@Configuration
|
||||
public class MatrixWebConfig implements WebMvcConfigurer {
|
||||
|
||||
@Override
|
||||
public void configurePathMatch(PathMatchConfigurer configurer) {
|
||||
final UrlPathHelper urlPathHelper = new UrlPathHelper();
|
||||
urlPathHelper.setRemoveSemicolonContent(false);
|
||||
|
||||
configurer.setUrlPathHelper(urlPathHelper);
|
||||
}
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
package com.baeldung.matrix.controller;
|
||||
|
||||
import com.baeldung.matrix.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<Long, Company> 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<Map<String, String>> getEmployeeDataFromCompany(@MatrixVariable(pathVar = "employee") final Map<String, String> matrixVars) {
|
||||
return new ResponseEntity<>(matrixVars, HttpStatus.OK);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/companyData/{company}/employeeData/{employee}", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public ResponseEntity<Map<String, String>> getCompanyName(@MatrixVariable(value = "name", pathVar = "company") final String name) {
|
||||
final Map<String, String> result = new HashMap<String, String>();
|
||||
result.put("name", name);
|
||||
return new ResponseEntity<>(result, HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
package com.baeldung.matrix.controller;
|
||||
|
||||
|
||||
import com.baeldung.matrix.model.Employee;
|
||||
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.*;
|
||||
|
||||
@SessionAttributes("employees")
|
||||
@Controller
|
||||
public class EmployeeController {
|
||||
|
||||
public Map<Long, Employee> employeeMap = new HashMap<>();
|
||||
|
||||
@ModelAttribute("employees")
|
||||
public void initEmployees() {
|
||||
employeeMap.put(1L, new Employee(1L, "John", "223334411", "rh"));
|
||||
employeeMap.put(2L, new Employee(2L, "Peter", "22001543", "informatics"));
|
||||
employeeMap.put(3L, new Employee(3L, "Mike", "223334411", "admin"));
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/employee", method = RequestMethod.GET)
|
||||
public ModelAndView showForm() {
|
||||
return new ModelAndView("employeeHome", "employee", new Employee());
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/employee/{Id}", produces = { "application/json", "application/xml" }, method = RequestMethod.GET)
|
||||
public @ResponseBody Employee getEmployeeById(@PathVariable final long Id) {
|
||||
return employeeMap.get(Id);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/addEmployee", method = RequestMethod.POST)
|
||||
public String submit(@ModelAttribute("employee") final Employee employee, final BindingResult result, final ModelMap model) {
|
||||
if (result.hasErrors()) {
|
||||
return "error";
|
||||
}
|
||||
model.addAttribute("name", employee.getName());
|
||||
model.addAttribute("contactNumber", employee.getContactNumber());
|
||||
model.addAttribute("workingArea", employee.getWorkingArea());
|
||||
model.addAttribute("id", employee.getId());
|
||||
|
||||
employeeMap.put(employee.getId(), employee);
|
||||
|
||||
return "employeeView";
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/employees/{name}", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public ResponseEntity<List<Employee>> getEmployeeByNameAndBeginContactNumber(@PathVariable final String name, @MatrixVariable final String beginContactNumber) {
|
||||
final List<Employee> employeesList = new ArrayList<Employee>();
|
||||
for (final Map.Entry<Long, Employee> employeeEntry : employeeMap.entrySet()) {
|
||||
final Employee employee = employeeEntry.getValue();
|
||||
if (employee.getName().equalsIgnoreCase(name) && employee.getContactNumber().startsWith(beginContactNumber)) {
|
||||
employeesList.add(employee);
|
||||
}
|
||||
}
|
||||
return new ResponseEntity<>(employeesList, HttpStatus.OK);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/employeesContacts/{contactNumber}", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public ResponseEntity<List<Employee>> getEmployeeBycontactNumber(@MatrixVariable(required = true) final String contactNumber) {
|
||||
final List<Employee> employeesList = new ArrayList<Employee>();
|
||||
for (final Map.Entry<Long, Employee> employeeEntry : employeeMap.entrySet()) {
|
||||
final Employee employee = employeeEntry.getValue();
|
||||
if (employee.getContactNumber().equalsIgnoreCase(contactNumber)) {
|
||||
employeesList.add(employee);
|
||||
}
|
||||
}
|
||||
return new ResponseEntity<>(employeesList, HttpStatus.OK);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "employeeData/{employee}", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public ResponseEntity<Map<String, String>> getEmployeeData(@MatrixVariable final Map<String, String> matrixVars) {
|
||||
return new ResponseEntity<>(matrixVars, HttpStatus.OK);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "employeeArea/{workingArea}", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public ResponseEntity<List<Employee>> getEmployeeByWorkingArea(@MatrixVariable final Map<String, LinkedList<String>> matrixVars) {
|
||||
final List<Employee> employeesList = new ArrayList<Employee>();
|
||||
final LinkedList<String> workingArea = matrixVars.get("workingArea");
|
||||
for (final Map.Entry<Long, Employee> employeeEntry : employeeMap.entrySet()) {
|
||||
final Employee employee = employeeEntry.getValue();
|
||||
for (final String area : workingArea) {
|
||||
if (employee.getWorkingArea().equalsIgnoreCase(area)) {
|
||||
employeesList.add(employee);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return new ResponseEntity<>(employeesList, HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
package com.baeldung.matrix.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 + "]";
|
||||
}
|
||||
|
||||
}
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
package com.baeldung.matrix.model;
|
||||
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
@XmlRootElement
|
||||
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, final String workingArea) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.contactNumber = contactNumber;
|
||||
this.workingArea = workingArea;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
public String getContactNumber() {
|
||||
return contactNumber;
|
||||
}
|
||||
|
||||
public void setContactNumber(final String contactNumber) {
|
||||
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 + ", workingArea=" + workingArea + "]";
|
||||
}
|
||||
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.baeldung.multiparttesting;
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@RestController
|
||||
public class MultipartPostRequestController {
|
||||
|
||||
@PostMapping(path = "/upload")
|
||||
public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file) {
|
||||
return file.isEmpty() ? new ResponseEntity<String>(HttpStatus.NOT_FOUND) : new ResponseEntity<String>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.baeldung.pathvariable.dottruncated;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
|
||||
|
||||
@Configuration
|
||||
public class CustomWebMvcConfigurationSupport extends WebMvcConfigurationSupport {
|
||||
|
||||
@Override
|
||||
protected PathMatchConfigurer getPathMatchConfigurer() {
|
||||
PathMatchConfigurer pathMatchConfigurer = super.getPathMatchConfigurer();
|
||||
pathMatchConfigurer.setUseSuffixPatternMatch(false);
|
||||
|
||||
return pathMatchConfigurer;
|
||||
}
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
package com.baeldung.pathvariable.dottruncated;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/site")
|
||||
public class SiteController {
|
||||
|
||||
@GetMapping("/{firstValue}/{secondValue}")
|
||||
public String requestWithError(@PathVariable("firstValue") String firstValue,
|
||||
@PathVariable("secondValue") String secondValue) {
|
||||
|
||||
return firstValue + " - " + secondValue;
|
||||
}
|
||||
|
||||
@GetMapping("/{firstValue}/{secondValue:.+}")
|
||||
public String requestWithRegex(@PathVariable("firstValue") String firstValue,
|
||||
@PathVariable("secondValue") String secondValue) {
|
||||
|
||||
return firstValue + " - " + secondValue;
|
||||
}
|
||||
|
||||
@GetMapping("/{firstValue}/{secondValue}/")
|
||||
public String requestWithSlash(@PathVariable("firstValue") String firstValue,
|
||||
@PathVariable("secondValue") String secondValue) {
|
||||
|
||||
return firstValue + " - " + secondValue;
|
||||
}
|
||||
}
|
||||
+89
@@ -0,0 +1,89 @@
|
||||
package com.baeldung.pathvariable;
|
||||
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
@RestController
|
||||
public class PathVariableAnnotationController {
|
||||
@GetMapping("/api/employees/{id}")
|
||||
@ResponseBody
|
||||
public String getEmployeesById(@PathVariable String id) {
|
||||
return "ID: " + id;
|
||||
}
|
||||
|
||||
@GetMapping("/api/employeeswithvariable/{id}")
|
||||
@ResponseBody
|
||||
public String getEmployeesByIdWithVariableName(@PathVariable("id") String employeeId) {
|
||||
return "ID: " + employeeId;
|
||||
}
|
||||
|
||||
@GetMapping("/api/employees/{id}/{name}")
|
||||
@ResponseBody
|
||||
public String getEmployeesByIdAndName(@PathVariable String id, @PathVariable String name) {
|
||||
return "ID: " + id + ", name: " + name;
|
||||
}
|
||||
|
||||
@GetMapping("/api/employeeswithmapvariable/{id}/{name}")
|
||||
@ResponseBody
|
||||
public String getEmployeesByIdAndNameWithMapVariable(@PathVariable Map<String, String> pathVarsMap) {
|
||||
String id = pathVarsMap.get("id");
|
||||
String name = pathVarsMap.get("name");
|
||||
if (id != null && name != null) {
|
||||
return "ID: " + id + ", name: " + name;
|
||||
} else {
|
||||
return "Missing Parameters";
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping(value = { "/api/employeeswithrequired", "/api/employeeswithrequired/{id}" })
|
||||
@ResponseBody
|
||||
public String getEmployeesByIdWithRequired(@PathVariable String id) {
|
||||
return "ID: " + id;
|
||||
}
|
||||
|
||||
@GetMapping(value = { "/api/employeeswithrequiredfalse", "/api/employeeswithrequiredfalse/{id}" })
|
||||
@ResponseBody
|
||||
public String getEmployeesByIdWithRequiredFalse(@PathVariable(required = false) String id) {
|
||||
if (id != null) {
|
||||
return "ID: " + id;
|
||||
} else {
|
||||
return "ID missing";
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping(value = { "/api/employeeswithoptional", "/api/employeeswithoptional/{id}" })
|
||||
@ResponseBody
|
||||
public String getEmployeesByIdWithOptional(@PathVariable Optional<String> id) {
|
||||
if (id.isPresent()) {
|
||||
return "ID: " + id.get();
|
||||
} else {
|
||||
return "ID missing";
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping(value = { "/api/defaultemployeeswithoptional", "/api/defaultemployeeswithoptional/{id}" })
|
||||
@ResponseBody
|
||||
public String getDefaultEmployeesByIdWithOptional(@PathVariable Optional<String> id) {
|
||||
if (id.isPresent()) {
|
||||
return "ID: " + id.get();
|
||||
} else {
|
||||
return "ID: Default Employee";
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping(value = { "/api/employeeswithmap/{id}", "/api/employeeswithmap" })
|
||||
@ResponseBody
|
||||
public String getEmployeesByIdWithMap(@PathVariable Map<String, String> pathVarsMap) {
|
||||
String id = pathVarsMap.get("id");
|
||||
if (id != null) {
|
||||
return "ID: " + id;
|
||||
} else {
|
||||
return "ID missing";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user