我要添加Path variable
来接收URL发送的值。这是我的控制器。
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/list/{field}", method = RequestMethod.GET)
public void userList(Model model, @PathVariable("field") String field) {
List<Users> userList = userDAO.searchAll();
System.out.println("Condition "+field);
model.addAttribute("userList", userList);
}
}
这是我的jsp
的文件夹结构。
allow_redirects
请帮助我找出问题所在。
谢谢。
编辑:还有可能我可以发送空路径变量ex:http://localhost:8080/mvcquick/user/list
并返回相同的方法吗?
答案 0 :(得分:1)
系统正在寻找mvcquick/WEB-INF/jsp/user/list/n.jsp
。
我没有看到此文件。
请尝试以下操作:
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/list/{field}", method = RequestMethod.GET)
public String userList(Model model, @PathVariable("field") String field) {
List<Users> userList = userDAO.searchAll();
System.out.println("Condition "+field);
model.addAttribute("userList", userList);
return "user/list"; // added line. Alos return type to String
}
答案 1 :(得分:0)
请尝试以下选项。
@PathVariable(name="field",required=true)
答案 2 :(得分:0)
我认为它正在“ .jsp”文件中寻找n.jsp。请确保在发送 id或属性时,您可以正确发送邮件。
答案 3 :(得分:0)
请注意,错误提示未找到n.jsp。这意味着您没有从控制器返回视图名称-我假设它是list.jsp。要更改此设置,请提供指向您的list.jsp文件的String返回值。因此,尝试使用
@RequestMapping(value = "/list/{field}", method = RequestMethod.GET)
public String userList(Model model, @PathVariable("field") String field) {
List<Users> userList = userDAO.searchAll();
System.out.println("Condition "+field);
model.addAttribute("userList", userList);
return "jsp/user/list.jsp"; // Path root must be from WEB-INF
}