路径变量导致404

时间:2019-01-04 04:16:02

标签: java path-variables


我要添加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);
    }

}

但是我遇到404错误。 JSP folder structure

这是我的jsp的文件夹结构。 allow_redirects

请帮助我找出问题所在。
谢谢。


编辑:还有可能我可以发送空路径变量ex:http://localhost:8080/mvcquick/user/list并返回相同的方法吗?

4 个答案:

答案 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或属性时,您可以正确发送邮件。

See this link for sending data(SO)

答案 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
    }