javascript
SpringMVC 视图解析器
1.視圖解析器 會 根據 把控制器返回的邏輯視圖名 確定?渲染模型的視圖文件的物理位置。
? ??Spring MVC的一個重要特性:將控制器中處理請求的邏輯 和 視圖中渲染實現 解耦。 控制器方法和視圖實現 只會在模型內容上保持一致,這是兩者最大的關聯。
2.Spring提供了13個視圖解析器,能夠將邏輯視圖名 轉換為 物理實現。其中 每一項都對應Java Web應用中特定的某種視圖技術。
? ? ?視圖解析器InternalResourceViewResolver 一般會用來解析JSP視圖。JSP曾經是,而且現在依然還是Java領域占主導地位的視圖技術
3.配置解析JSP的視圖解析器
? ? Spring MVC中?InternalResourceViewResolver是最簡單和最常用的視圖解析器 能將視圖名映射為JSP文件
? ? JavaConfig中配置如下 參考?搭建Spring MVC Web項目----JavaConfig?? ?
? ? 如下配置??home 解析為“/WEB-INF/views/home.jsp”?
? ? ? ? ? ? ? ? ? ? books/detail 解析為“/WEB-INF/views/books/detail.jsp”
@Bean public ViewResolver viewResolver() { // 配置 試圖解析器InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();viewResolver.setPrefix("WEB-INF/views");viewResolver.setSuffix(".jsp");viewResolver.setExposeContextBeansAsAttributes(true);return viewResolver; }? ? ? ?XML配置 參考?搭建 Spring MVC WEB項目----XML配置
<!-- 視圖解析器 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/"></property><property name="suffix" value=".jsp"></property></bean>4.標簽庫
? ? ?參考?SpringMvc對JSP的支持---支持JSTL標簽庫
5.Spring對JSP標簽庫的支持--解析JSTL視圖?
? ??參考SpringMvc對JSP的支持---支持JSTL標簽庫
6.Spring對JSP標簽庫的支持--Spring的JSP標簽庫
? ? 參考?SpringMVC對JSP的支持---Spring的JSP標簽庫---Spring通用標簽庫
7.Thymeleaf 視圖
? ? ?以上講的是在Spring 中集成JPS視圖 有時候項目中需要使用Thymeleaf視圖。為了在Spring 中使用Thymeleaf,需要配置三個 啟用Thymeleaf與Spring集成的 bean。這樣 應用程序就可以將響應中的模板渲染到Spring MVC控制器所處理的請求中。Java配置如下:
? ? ? ThymeleafViewResolver是Spring MVC中viewResolver的一個實現類。像其他(JSP)視圖解析器一樣,接收一個邏輯視圖名并將其解析為Thymeleaf模板視圖,它解析成的視圖是一個Thymeleaf模板。SpringTemplateEngine會在Spring中啟用Thymeleaf引擎,用來解析模板,并基于這些模板渲染結果。TemplateResovler 加載Thymeleaf模板 ,與JSP的InternalResourceViewResolver類似,它也是通過prefix和suffix來定位Thymeleaf引擎 最終定位和查找模板。
? ? ?這還有個問題?TemplateResolver 沒找到是哪個jar包里的
import org.springframework.context.annotation.Bean; import org.springframework.web.servlet.ViewResolver; import org.thymeleaf.TemplateEngine; import org.thymeleaf.spring5.SpringTemplateEngine; import org.thymeleaf.spring5.view.ThymeleafViewResolver; import org.thymeleaf.templateresolver.ITemplateResolver; import org.thymeleaf.templateresolver.ServletContextTemplateResolver;// Thymeleaf 視圖解析器@Beanpublic ViewResolver viewResolver(SpringTemplateEngine templateEngine) {ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();viewResolver.setTemplateEngine(templateEngine);return viewResolver;}// 模板引擎@Beanpublic TemplateEngine templateEngine(TemplateResolver templateResolver) {SpringTemplateEngine templateEngine = new SpringTemplateEngine();templateEngine.setTemplateResolver(templateResolver);return templateEngine;}// 模板解析器@Beanpublic TemplateResolver templateResolver() {TemplateResolver templateResolver = new ServletContextTemplateResolver(null);templateResolver.setPrefix("WEB-INF/templates/");templateResolver.setSuffix(".html");//要解析的模板會渲染成HTML 5輸出templateResolver.setTemplateModel("HTML5"); return templateResolver;}總結
以上是生活随笔為你收集整理的SpringMVC 视图解析器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PROE问题解决【开机显示thumbna
- 下一篇: matlab同步电机三相短路,基于Mat