问题描述
小弟最近在学习Spring MVC,发现将所有的JSP页面放到同一个路径之下的话,页面会非常的多,看起来非常不好,我现在想让不同模块的JSP页面放到不同的路径之下。我Spring MVC配置文件中对于页面配置如下:<!-- 定义Spring MVC 的模板文件 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <!-- 支持JSTL --> <property name="prefix" value="WEB-INF/pages/" /> <!-- 模板的路径 --> <property name="suffix" value=".jsp" /> <!-- 模板文件的后缀--> </bean> 我现在想让不通模块的JSP页面放到不通的路径之下,比如说用户管理模块的JSP页面放到WEB-INF/pages/user/,项目管理模块的JSP页面放到WEB-INF/pages/project/下。 我的Controller中的方法是这么写的: @SuppressWarnings("unchecked") @RequestMapping(params="method=queryAllUser",method=RequestMethod.POST) public String index(ModelMap map,HttpServletRequest request,HttpServletResponse response) { // map是用来设置View层数据的 map.put("a1", "Spring真好用"); request.getSession().setAttribute("a2", "测试Session"); List<User> list2 = userService.getAllUser(); map.put("a3", list2); return "user"; } 请问各位大侠,怎么实现????? 问题补充:hellostory 写道
解决方案
引用能不能将某一个Controller的返回页面全部映射到某一个文件夹下,比如说 UserController 的页面全部返回到 WEB-INF/pages/user 下;ProjectController 的页面全部在 WEB-INF/pages/user 下?能不能通过简单的注解来进行配置一下? 目前不可以做到,如果可以的话,也许需要修改Spring代码,这似乎不是好的解决方案。你可以参考下将注解加在类上就可以了,例如:@Controller@RequestMapping(value = "/user")public class UserController { @RequestMapping(value = "/add") public String add(){ // ... return "user/add"; } @RequestMapping(value = "/add") public String del(){ // ... return "user/del"; }}
解决方案二:
假设你的文件夹下有以下文件:WEB-INF/pages/user/user_add.jsp(添加用户)WEB-INF/pages/user/user_del.jsp(删除用户)那么,你在Controller下这样写就可以了: @SuppressWarnings("unchecked") @RequestMapping(params="method=queryAllUser",method=RequestMethod.POST) public String index(ModelMap map,HttpServletRequest request,HttpServletResponse response) { // map是用来设置View层数据的 map.put("a1", "Spring真好用"); request.getSession().setAttribute("a2", "测试Session"); List<User> list2 = userService.getAllUser(); map.put("a3", list2); return "user/user_add"; // 跳转指添加用户页面 // return "project/index";//假设存在WEB-INF/pages/project/index.jsp }哈,就这么简单!