Spring MVC,如果 RequestMapping 中提到的单词与 URL 中提到的单词匹配,则调用 Contro



如果执行的URL包含相应控制器@RequestMapping中提到的单词,是否可以调用控制器?

这是我的代码

@Controller
@RequestMapping({"/employee","/nonemployee","/temp"})
public class EmployeeController {
@Autowired
EmployeeService service;
@RequestMapping("/add")
public ModelAndView employee() {
ModelAndView modelAndView = new ModelAndView("emp/add", "command", new Employee());
return modelAndView;
}
@RequestMapping("/employees")
public ModelAndView getEmployeeList() {
ModelAndView modelAndView = new ModelAndView("/emp/employees", "list", service.getEmployeeList());
return modelAndView;
}
@RequestMapping(value = "/create")
public String createEmployee(@ModelAttribute Employee employee, ModelMap model) {
service.newEmployee(employee);
model.addAttribute("name", employee.getName());
model.addAttribute("age", employee.getAge());
model.addAttribute("id", employee.getId());
return "/emp/create";
}
}

将上面的代码与@RequestMapping({"/employee","/nonemployee","/temp"})@RequestMapping("/employees")一起使用,我们可以调用以下 url 来列出值:

  1. http://localhost:8080/Spring/employee/employees
  2. http://localhost:8080/Spring/nonemployee/employees
  3. http://localhost:8080/Spring/temp/employees

在仔细观察时,我们可以看到传递给 RequestMap 的所有三个单词/值中的匹配单词emp。因此,我正在寻找的是执行控制器的方式,如果URL包含单词emp

在执行以下 URL 时,值列表必须由相同的方法 (getEmployeeList()( 返回,但不要将多个或所有值传递给 RequestMapping 注释:

  1. http://localhost:8080/Spring/employee/employees
  2. http://localhost:8080/Spring/nonemployee/employees
  3. http://localhost:8080/Spring/temp/employees
  4. http://localhost:8080/Spring/exempt/employees
  5. http://localhost:8080/Spring/attempt/employees

将请求映射更改为 -

@RequestMapping("/*emp*")

这应该适用于您想要做的事情。

最新更新