视图和视图解析器工作流程

  • 第一步:获取到ModelAndView对象

请求处理方法执行完成后,无论返回是String,View 还是 ModeMap 类型,Spring MVC 也会在内部将它们装配成一个 ModelAndView 对象,它包含了逻辑名和模型对象的视图

  • 第二步:把ModelAndView对象处理得到View对象,再得到真正的视图

Spring MVC 借助视图解析器(ViewResolver)得到最终 的视图对象(View),最终的视图可以是 JSP ,也可能是 Excel、JFreeChart 等各种表现形式的视图

常用的视图表现类

jstl配置的国际化操作

配置依赖

<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
</exclusions>
</dependency> <dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency> //记住:一定要在IDEA中的lib目录下配置好这几个依赖

配置properties配置文件

在resource下创建三个文件:i18n.peropertiesi18n_zh_CN.propertiesi18n_en_US.properties

创建之后会自动生成Resoure Bundle 'i18n'目录把这三个配置文件包含在一起

i18n.peroperties

i18n.username = Username
i18n.password = Password

i18n_zh_CN.properties

i18n.username = \u7528\u6237\u540D
i18n.password = \u5BC6\u7801

i18n_en_US.properties

i18n.username = Username
i18n.password = Password

在springmvc-servlet.xml配置文件中配置国际化资源文件

<!--配置国际化资源文件-->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="i18n"/>
</bean>

在目标jsp文件中添加jstl配置

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

//使用
<fmt:message key="i18n.username"></fmt:message>
<br>
<fmt:message key="i18n.password"></fmt:message>
<br>

在电脑首选项为中文的情况下会显示中文,首选项为英文的时候会显示英文

配置直接转发页面(不经过control)

springmvc-servlet.xml

<!--配置直接转发页面-->
<!--当在jsp页面里转/redict时,会直接转到/ModelAndViews页面,而不会经过dispatcherServlet控制器-->
<mvc:view-controller path="/redict" view-name="ModelAndViews"/>

index.jsp

<h1>配置直接转发页面</h1>
<a href="/redict">直接跳转</a>

自定义视图(了解)

重定向

  • 一般情况下,控制器方法返回字符串类型的值会被当成逻 辑视图名处理
  • 如果返回的字符串中带 forward: 或 redirect: 前缀 时,SpringMVC 会对他们进行特殊处理:
  • 将 forward: 和 redirect: 当成指示符,其后的字符串作为 URL 来处理
  • redirect:success.jsp:会完成一个到 success.jsp 的重定向的操作
  • forward:success.jsp:会完成一个到 success.jsp 的转发操作

springMVC-5-视图解析器的更多相关文章

  1. SpringMVC 多视图解析器配置以及问题

    在SpringMVC模式当中可以通过如下配置来支持多视图解析 <!-- jsp jstl --> <bean id="JSPViewResolver" class ...

  2. SpringMVC——说说视图解析器

    学习SpringMVC——说说视图解析器   各位前排的,后排的,都不要走,咱趁热打铁,就这一股劲我们今天来说说spring mvc的视图解析器(不要抢,都有位子~~~) 相信大家在昨天那篇如何获取请 ...

  3. 学习SpringMVC——说说视图解析器

    各位前排的,后排的,都不要走,咱趁热打铁,就这一股劲我们今天来说说spring mvc的视图解析器(不要抢,都有位子~~~) 相信大家在昨天那篇如何获取请求参数篇中都已经领略到了spring mvc注 ...

  4. SpringMVC的视图解析器

    ViewResolver和View介绍 SpringMVC用于处理视图最重要的两个接口是ViewResolver和View.ViewResolver的主要作用是把一个逻辑上的视图名称解析为一个真正的视 ...

  5. springMVC初探视图解析器——InternalResourceViewResolver

    springmvc在处理器方法中通常返回的是逻辑视图,如何定位到真正的页面,就需要通过视图解析器. springmvc里提供了多个视图解析器,InternalResourceViewResolver就 ...

  6. SpringMVC中视图解析器

    视图解析器:固定写法直接coppy就行 1.dispatcherServlet-servlet.xml中添加 <!-- 视图解析器InternalResourceViewResolver --& ...

  7. springMVC初探视图解析器——ResourceBundleViewResolver

    视图解析器ResourceBundleViewResolver是根据proterties文件来找对应的视图来解析”逻辑视图“的, 该properties文件默认是放在classpath路径下的view ...

  8. springMVC初探视图解析器——XmlViewResolver

    XmlViewResolver解析器 XmlViewResolver基于XML文件中的视图bean来解析“逻辑视图”.XmlViewResolver默认会从/WEB-INF/views.xml中加载视 ...

  9. SpringMVC 多视图解析器 跳转问题

    在SpringMVC的配置文件中加入以下配置: <!--  下面红色的配置必须要在--> <mvc:default-servlet-handler /> <bean id ...

  10. SpringMvc:视图和视图解析器

    请求处理方法执行完成后,最终返回一个ModelAndView对象,对于返回String,View或ModelMap等类型的处理方法,SpringMvc也会在内部将它们装配成一个ModelAndView ...

随机推荐

  1. NOIP2018初赛普及组原题&题解

    NOIP2018初赛普及组原题&题解 目录 NOIP2018初赛普及组原题&题解 原题&答案 题解 单项选择题 第$1$题 第$2$题 第$3$题 第$4$题 第$5$题 第$ ...

  2. 对标 Spring Boot & Cloud ,轻量框架 Solon 1.5.2 重要发布

    Solon 是一个轻量的Java基础开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Job.Micro service.WebS ...

  3. java线程和操作系统线程的异同(大图对比)

    先看看两者的对比: 可以发现: 1.java中细分了阻塞,将阻塞给分成了三个不同类型的阻塞. 2.java没有区分就绪状态和运行状态.java将这两种状态合并成runnable状态. 3.还有一个容易 ...

  4. 【模拟7.27】题(liu_runda的神题)(卡特兰数,组合数)

    考场的SB经验不再分享 case 0: 一道组合计数的水题,具体不再讲可以看以前的相似题 case 1: 很明显的卡特兰计数,我们把长度为n的序列看成01串 关于卡特兰计数的详细的讲解 由此可知我们需 ...

  5. 【codeforces841A】Generous Kefa

    原题 A. Generous Kefatime limit per test:2 secondsmemory limit per test:256 megabytes input:standard i ...

  6. NOIP模拟测试3「序列·熟练剖分·建造游乐园(play)」

    ---恢复内容开始--- 序列 刚调出来样例就A了,假装是水题. 因为是乱序,我们要求出来每两项之间最小公比,而不是直接比 求出来每两项之间最小公比,然后扫一遍就完了.(还要注意重复情况) 那么问题就 ...

  7. Java知识复习(二)

    如何格式化日期? SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Date dat=new Da ...

  8. mybatis-generator的使用心得

    之前开发了一个亚健康测评系统,使用的是SSM框架,里面第一次使用到了mybatis-generator逆向代码生成工具,很方便,省去了基本的增删改查的mapper文件及sql的编写,还能避免错误,这里 ...

  9. 温故知新,使用ASP.NET Core创建Web API,永远第一次

    ASP.NET Core简介 ASP.NET Core是一个跨平台的高性能开源框架,用于生成启用云且连接Internet的新式应用. 使用ASP.NET Core,您可以: 生成Web应用和服务.物联 ...

  10. 【知识点】C++的日志框架

    常用的 C++ 日志框架 一.日志框架 一个经过专门设计的实用程序,用于规范应用程序的日志记录过程,就是日志框架.   日志框架可以自己编写(需要一定的能力哦),也可以由第三方(例如:log4cplu ...