方法 | 说明 |
---|---|
default String getContentType() | 获取 HTTP 响应文件的类型,例如 HTML、JSON、PDF 等。 |
void render(@Nullable Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception; |
负责将 Model(模型)数据渲染到视图中,这是视图的核心方法。
其中参数 model 表示模型数据,参数 request 表示请求对象,参数response 则表示响应对象。 |
实现类 | 说明 |
---|---|
ThymeleafView | Thymeleaf 视图。当项目中使用的视图技术为 Thymeleaf 时,就需要使用该视图类。 |
InternalResourceView | 转发视图,通过它可以实现请求的转发跳转。与此同时,它也是 JSP 视图。 |
RedirectView | 重定向视图,通过它可以实现请求的重定向跳转。 |
FreeMarkerView | FreeMarker 视图. |
MappingJackson2JsonView | JSON 视图。 |
AbstractPdfView | PDF 视图 。 |
@RequestMapping("/testView") public String testView(Model model) { model.addAttribute("product","模型数据") return "success"; }
@RequestMapping("/testView") public ModelAndView testView() { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("productList"); List<Product> productList = productService.getProductList(); modelAndView.addObject(productList); return modelAndView; }
@RequestMapping("/testJsonView") public ModelAndView testJsonView(Integer productId) { ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("url", "task.lmcjl.com"); //设置 ModelAndView 的 View 对象 modelAndView.setView(new MappingJackson2JsonView()); return modelAndView; }
public interface ViewResolver { @Nullable View resolveViewName(String viewName, Locale locale) throws Exception; }
视图解析器 | 说明 |
---|---|
BeanNameViewResolver | 将视图解析后,映射成一个 Bean,视图的名称就是 Bean 的 id。 |
InternalResourceViewResolver | 将视图解析后,映射成一个资源文件。例如将一个视图名为字符串“success.jsp”的视图解析后,映射成一个名为 success 的 JSP 文件。 |
FreeMarkerViewResolver | 将视图解析后,映射成一个 FreeMarker 模板文件。 |
ThymeleafViewResolver | 将视图解析后,映射成一个 Thymeleaf 模板文件。 |
<!-- 配置 Thymeleaf 视图解析器 --> <bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver"> <!--定义视图解析器的优先级,order 值越小,优先级越高--> <property name="order" value="1"/> <!--定义视图文件的字符集--> <property name="characterEncoding" value="UTF-8"/> <property name="templateEngine"> <bean class="org.thymeleaf.spring5.SpringTemplateEngine"> <property name="templateResolver"> <bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver"> <!-- 视图前缀 --> <property name="prefix" value="/WEB-INF/templates/"/> <!-- 视图后缀 --> <property name="suffix" value=".html"/> <property name="templateMode" value="HTML5"/> <property name="characterEncoding" value="UTF-8"/> </bean> </property> </bean> </property> </bean>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--开启组件扫描--> <context:component-scan base-package="net.biancheng.c"></context:component-scan> <!-- 配置 Thymeleaf 视图解析器 --> <bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver"> <!--逻辑视图名的规则--> <property name="viewNames" value="th*,base/*"/> <!--视图解析器的优先级,值越小,优先级越高--> <property name="order" value="2"/> <!--定义视图文件的字符集--> <property name="characterEncoding" value="UTF-8"/> <property name="templateEngine"> <bean class="org.thymeleaf.spring5.SpringTemplateEngine"> <property name="templateResolver"> <bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver"> <!--设置视图前缀 --> <property name="prefix" value="/WEB-INF/templates/"/> <!--设置视图后缀 --> <property name="suffix" value=".html"/> <property name="templateMode" value="HTML5"/> <property name="characterEncoding" value="UTF-8"/> </bean> </property> </bean> </property> </bean> <!--解析 JSP --> <bean id="viewResolver1" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--逻辑视图名的规则--> <property name="viewNames" value="j/*"/> <!--视图解析器的优先级,值越小,优先级越高--> <property name="order" value="1"/> <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"/> <!--视图前缀--> <property name="prefix" value="/WEB-INF/jsp/"/> <!--视图后缀--> <property name="suffix" value=".jsp"/> </bean> </beans>
<property name="viewNames" value="th*,base/*"/>
@RequestMapping("/addPage") public String addPage() { return "base/add"; }
<mvc:view-controller path="/addPage" view-name="base/add"></mvc:view-controller>
<mvc:annotation-driven />
本文链接:http://task.lmcjl.com/news/15621.html