徐州教育平台网站建设,wordpress不显示中文图片不显示,屯济宁做网站公司,淮安网站排名优化公司1.简介 在Spring中#xff0c;提供了View Resolver来使用模型中可用的数据来解析视图#xff0c;而无需与JSP#xff0c;Velocity或Thymeleaf等View技术紧密绑定。 Spring可以根据需要轻松灵活地配置一个或多个View Resolver 。  2. Spring MVC应用程序流程 在继续理解多个V…  1.简介  在Spring中提供了View Resolver来使用模型中可用的数据来解析视图而无需与JSPVelocity或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 --
dependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion${spring.version}/version
/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion${spring.version}/version
/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion${spring.version}/version
/dependency!-- Jackson JSON Mapper --
dependencygroupIdorg.codehaus.jackson/groupIdartifactIdjackson-mapper-asl/artifactIdversion${jackson.version}/version
/dependency!-- JSTL Dependency --
dependencygroupIdjstl/groupIdartifactIdjstl/artifactIdversion${jstl.version}/version
/dependency web.xml的更改不多。   web.xml  ?xml version1.0 encodingISO-8859-1?
web-app xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlnshttp://java.sun.com/xml/ns/javaeexsi:schemaLocationhttp://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsdidWebApp_ID version2.5display-nameMultipleViewResolversExample/display-nameservletservlet-namemvc-dispatcher/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-classload-on-startup1/load-on-startup/servletservlet-mappingservlet-namemvc-dispatcher/servlet-nameurl-pattern/API/*/url-pattern/servlet-mapping/web-app 这是mvc-dispatcher-servlet其中定义了多个视图解析器 。   mvc-dispatcher-servlet.xml  beans xmlnshttp://www.springframework.org/schema/beansxmlns:contexthttp://www.springframework.org/schema/contextxmlns:mvchttp://www.springframework.org/schema/mvc xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://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.xsdmvc:annotation-driven /context:component-scan base-packagecom.jcombat.controller /!-- Bean View Resolver --bean classorg.springframework.web.servlet.view.BeanNameViewResolverproperty nameorder value0 //bean!-- JSP View Resolver --beanclassorg.springframework.web.servlet.view.InternalResourceViewResolverproperty nameprefixvalue/WEB-INF//value/propertyproperty namesuffixvalue.jsp/value/propertyproperty nameorder value1 //beanbean namejsonViewclassorg.springframework.web.servlet.view.json.MappingJacksonJsonView //beans 请注意配置的两个视图解析器是InternalResourceViewResolver和BeanNameViewResolver 。 我们还使用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 contentTypetext/html pageEncodingUTF-8%
!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//ENhttp://www.w3.org/TR/html4/loose.dtd
htmlheadmeta http-equivContent-Type contenttext/html; charsetISO-8859-1titleVia JSP View Resolver/title/headbody!-- Retrieve the model data through JSTL --p${employee.empId}/pp${employee.name}/p/body
/html4.运行应用程序  当我们运行该应用程序时将看到以下内容。      注意我们没有名称为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