6.SpringMVC2

1.视图解析

当客户端发出请求后,交由SpringMVC的DispatcherServlet处理,接着Spring会分析看哪一个HandlerMapping定义的所有请求映射中对该请求的最合理的映射,然后通过该HandlerMapping取得其对应的Handler
接着再通过相应的HandlerAdapter处理该Handler,处理之后会返回一个ModelAndView对象
Spring就会把该View渲染给用户,即返回给浏览器
在这个渲染的过程中,发挥作用的就是ViewResolver和View

ViewResolver和View是Spring处理视图的2个重要接口
ViewResolver提供了视图名称和真实视图之间的映射
View是真正进行视图渲染,把结果返回给浏览器的

SpringMVC中的所有handler方法都需要解析某一个逻辑视图名称,比如String类型、View或者ModelAndView实例,而Spring提供了一组视图解析器来解析
AbstractCachingViewResolver
UrlBasedViewResolver
InternalResourceViewResolver
XmlViewResolver
ResourceBundleViewResolver
VelocityViewResolver / FreeMarkerViewResolver
BeanNameViewResolver

checkbox标签
用法同radiobutton标签
绑定数据时,有3种方式:
绑定的值是boolean类型,值为true,则复选框被选中
绑定的值的类型是array或者java.util.Collection,集合中有的值,对应的复选框被选中
对于其它绑定的类型,绑定的值相等,则对应复选框被选中

InternalResourceViewResolver
它是URLBasedViewResolver的子类
它定义了前缀、后缀,并和控制器返回的视图名称拼接在一起,并解析为视图对象
它会将模型数据存放到对应的HttpServletRequest中,然后转发到相应的页面视图

 

ResourceBundleViewResolver
它是AbstractCachingViewResolver的子类
它需要有一个配置文件来定义逻辑视图名称和真正View对象的对应关系
默认情况下这个配置文件是在classpath根目录下的views.properties

2.视图技术之JSP&JSTL

Spring为JSP和JSTL这些view层技术提供了几个开箱即用的解决方案
与在Spring中采用的任何其他视图技术一样,使用JSP需要一个视图解析器来解析你的视图,常用的是InternalResourceViewResolver和ResourceBundleViewResolver

在此基础上,Srping提供了一组全面的用于处理表单元素进行数据绑定的标签,让JSP开发变得更加容易

表单标签:

Spring的表单标签,捆绑在spring-webmvc.jar中。这些标签库的描述符被称为spring-form.tld
要使用该标签库,需要在JSP页面顶端配置:


常见标签有:
Form标签 input标签 radiobutton标签 checkbox标签
Select标签 password标签 textarea标签 hidden标签
Errors标签 HTML5标签

form标签,将命令对象放置到PageContext中,默认名为“command”,并用其他子标签绑定属性值


input标签

password标签

radiobutton标签
方式1:


方式2:


方式3:

select标签
方式1:

方式2:

 

textarea标签


hidden标签

 3.视图技术之文档视图

输出Excel步骤:
导入poi.jar包
编写类,扩展AbstractExcelView,实现buildExcelDocument()方法
在配置文件中
<bean class=“org.springframework.web.servlet.view.BeanNameViewResolver”/>
<bean id=“userExcel” class=“com.web.UserListExcelView”/>
在controller中跳转指向userExcel类型
return “userExcel”;

输出PDF步骤:
导入itext相关包
编写PdfView类,继承自AbstractPdfView,并实现其抽象方法
在springmvc-servlet.xml配置文件中配置该bean对象
<bean id=“userPdf” class=“com.web.UserListPdfView”/>
在controller中跳转指向pdfview类型
return “userPdf”;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值