为什么spring仅在控制器请求映射注释上存在一个级别url路径时才解析视图

时间:2015-04-07 11:17:53

标签: java spring jsp spring-mvc

我正在使用Spring MVC实现一个网站,我注意到以下问题。我有一个像这样的控制器

/**
 * Created by adelin.ghanayem@cayetanogaming.com on 4/7/15.
 */
@Controller
@RequestMapping(value = "/")
public class UserControlPanelController {

    // this url has a second level. /user/panel
    @RequestMapping(value = "/user/panel",method = RequestMethod.GET)
    @Secured(value = {"ROLE_USER"})
    public ModelAndView mainPage(){
         return new ModelAndView("user-panel.jsp");
    }
}

视图user-panel.jsp不是我收到的解析器

HTTP ERROR 404

Problem accessing /myapp/user/login-user.jsp. Reason:

    /myapp/user/login-user.jsp

但是,当我将方法映射到@RequestMapping(value = "/user",method = RequestMethod.GET)

视图已解决。 jsp页面位于webapp(web目录)的根目录

现在,当我尝试将方法映射到@RequestMapping(value = "/user/panel",method = RequestMethod.GET)return new ModelAndView("/user-panel.jsp");时请注意ROOT SLASH。视图已正确解析。

1 个答案:

答案 0 :(得分:0)

您需要在配置中指定一个视图解析器,以便Spring知道在哪里查找视图。如果你不提供一个,你必须指定文件的路径,这就是" user-panel.jsp"不起作用,但" /user-panel.jsp"确实有效。