springMVC同時支援跳轉jsp和html
阿新 • • 發佈:2018-11-19
想要實現如以下效果
@Controller //RestController代表controller,但是是和ResponseBody結合 @RequestMapping("adminC") //不能@RequestMapping("/adminC") public class AdminController { private AdminService adminService; @RequestMapping(value = "/index", method = RequestMethod.GET) public String index(HttpServletRequest request, Model model) { return "base/admin/index"; } @RequestMapping(value = "/index2", method = RequestMethod.GET) public String index2(HttpServletRequest request, Model model) { return "base/admin/index2"; } }
其中,index是html,index2是jsp,如果同名,先跳轉jsp
======================================
1.配置HtmlResourceView,建立類
package org.pb.base.servlet; import org.springframework.web.servlet.view.InternalResourceView; import java.io.File; import java.util.Locale; public class HtmlResourceView extends InternalResourceView { @Override public boolean checkResource(Locale locale){ File file=new File(this.getServletContext().getRealPath("/")+getUrl()); return file.exists(); //判斷頁面是否存在 } }
2.配置spring-mvc.xml
<!-- 對模型檢視名稱的解析,在請求時模型檢視名稱新增前後綴--> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />--> <property name="viewClass" value="org.pb.base.servlet.HtmlResourceView" /> <!-- 通過setter方法注入字首 /WEB-INF/views/showMsg.jsp--> <property name="prefix" value="/" /> <!-- 通過setter方法注入字尾 --> <property name="suffix" value=".jsp" /> <property name="order" value="1" /> </bean> <bean id="htmlviewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.pb.base.servlet.HtmlResourceView"/> <property name="order" value="2" /> <property name="prefix" value="/"/> <property name="suffix" value=".html" /> <property name="contentType" value="text/html;charset=UTF-8"></property> </bean>
其中order屬性越小,優先順序越高,而prefix不是一成不變的,你可以看下你的target目錄下,頁面的具體路徑來配置