日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

spring多个视图解析器_在Spring中配置多个View解析器

發布時間:2023/12/3 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring多个视图解析器_在Spring中配置多个View解析器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

spring多個視圖解析器

1.簡介

在Spring中,提供了View Resolver來使用模型中可用的數據來解析視圖,而無需與JSP,Velocity或Thymeleaf等View技術緊密綁定。 Spring可以根據需要輕松靈活地配置一個或多個View Resolver

2. Spring MVC應用程序流程

在繼續理解多個View Resolver如何達到目的之前,讓我們快速回顧一下Spring MVC應用程序流程 。

  • 傳入的請求通過web.xml調度程序servlet到達控制器
  • 控制器與應用程序層進行交互并準備模型
  • 控制器返回ModelAndView ,以及模型和視圖名稱。
  • ViewResolver提供了視圖名稱和實際視圖之間的映射。
  • View界面解決了對各種View技術的視圖請求。
  • 然后將視圖與模型數據一起呈現到瀏覽器中。
  • 3.實施

    讓我們從pom依賴關系開始。

    pom.xml

    <!-- Spring 3 dependencies --> <dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version> </dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version> </dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version> </dependency><!-- Jackson JSON Mapper --> <dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>${jackson.version}</version> </dependency><!-- JSTL Dependency --> <dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version> </dependency>

    web.xml的更改不多。

    web.xml

    <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5"><display-name>MultipleViewResolversExample</display-name><servlet><servlet-name>mvc-dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>mvc-dispatcher</servlet-name><url-pattern>/API/*</url-pattern></servlet-mapping></web-app>

    這是mvc-dispatcher-servlet,其中定義了多個視圖解析器

    mvc-dispatcher-servlet.xml

    <beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"><mvc:annotation-driven /><context:component-scan base-package="com.jcombat.controller" /><!-- Bean View Resolver --><bean class="org.springframework.web.servlet.view.BeanNameViewResolver"><property name="order" value="0" /></bean><!-- JSP View Resolver --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix"><value>/WEB-INF/</value></property><property name="suffix"><value>.jsp</value></property><property name="order" value="1" /></bean><bean name="jsonView"class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" /></beans>

    請注意,配置的兩個視圖解析器是InternalResourceViewResolverBeanNameViewResolver 。 我們還使用View Resolver的order屬性設置了優先級。 因此, BeanNameViewResolver具有更高的優先級。 這意味著,當返回ModelAndView對象時, BeanNameViewResolver會使用返回的視圖名稱檢查可用的bean視圖。 如果找到匹配的bean視圖,則將其呈現。 如果不是,則進入下一個View Resolver,即InternalResourceViewResolver ,并類似地檢查ModelAndView返回的具有視圖名稱的JSP。 如果找到,則呈現視圖。 但是,如果沒有,并且層次結構中沒有更多視圖解析器,則會引發適當的異常。

    繼續實現,我們擁有與最近使用的相同的Employee實體類。

    Employee.java

    package com.jcombat.bean;public class Employee {private String empId;private String name;public String getEmpId() {return empId;}public void setEmpId(String empId) {this.empId = empId;}public String getName() {return name;}public void setName(String name) {this.name = name;} }

    現在讓我們寫下EmployeeController

    EmployeeController.java

    package com.jcombat.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView;import com.jcombat.bean.Employee;@Controller @RequestMapping(value = "/Employee") public class EmployeeController {@RequestMapping(value = "/{name}/{empId}", method = RequestMethod.GET)public ModelAndView process(@PathVariable("name") String name,@PathVariable("empId") String empId) {ModelAndView modelAndView = new ModelAndView();Employee employee = new Employee();employee.setEmpId(empId);employee.setName(name);modelAndView.setViewName("employeeDetails");modelAndView.addObject("employee", employee);return modelAndView;} }

    現在,我們確保具有視圖名稱– employeeDetails的JSP存在。

    employeeDetails.jsp

    <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Via JSP View Resolver</title></head><body><!-- Retrieve the model data through JSTL --><p>${employee.empId}</p><p>${employee.name}</p></body> </html>

    4.運行應用程序

    當我們運行該應用程序時,將看到以下內容。

    注意,我們沒有名稱為employeeDetails的任何bean視圖,而是與實際的JSP視圖文件employeeDetails.jsp匹配。 因此,視圖被解析為JSP。

    現在,讓我們將視圖名稱返回為jsonView ,在controller方法中修改以下語句。

    modelAndView.setViewName("jsonView");

    BeanNameViewResolver的優先級更高,這次將找到名稱為jsonView的bean視圖,并且不再呈現JSP視圖,而是使用相同的URI返回JSON

    5.下載源代碼

    • 下載源代碼

    翻譯自: https://www.javacodegeeks.com/2016/03/configure-multiple-view-resolvers-spring.html

    spring多個視圖解析器

    總結

    以上是生活随笔為你收集整理的spring多个视图解析器_在Spring中配置多个View解析器的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。