Spring框架——Spring响应
视图解析
- ViewResolver提供视图名称和真实视图之间的映射
- View真正进行视图渲染,把结果返回给浏览器
视图解析ViewResolver
SpringMVC中的所有handler方法都需要解析某一个逻辑视图名称
- AbstractCachingViewResolver
- UrlBasedViewResolver
InternalResourceViewResolver
jsp返回ResourceBundleViewResolver
资源绑定VelocityViewResolver / FreeMarkerViewResolver
其他语言的视图解析器BeanNameViewResolver
自定义视图解析器
InternalResourceViewResolver
- 它是
URLBasedViewResolver
的子类 - 它定义了前缀、后缀,并和控制器返回的视图名称拼接在一起,并解析为视图对象
- 它会将模型数据存放到对应的
HttpServletRequest
中,然后转发到相应的页面视图
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>
JSP&JSTL
Srping提供了一组全面的用于处理表单元素进行数据绑定的标签
实现页面与数据双向绑定
<%@ taglib prefix="form" url="http://www.springframework.org/tags/form" %>
form标签
<form:form commandName="">
input标签
<form:input path="name" />
password标签
<form:password path="code" value="123" showPassword="true"/>
radio标签
- 静态固定的选项
<form:radiobutton path="area" value="large" />
<form:radiobutton path="area" value="small" />
- 动态资源的选项
<form:radiobuttons path="size" items="${sizes }"/>
- 自定义显示类数据
- itemLabel:显示的数据
- itemValue:传递的数据
<form:radiobuttons path="province" items="${provinces }" itemLabel="id" itemValue="name"/>
checkbox标签
绑定数据:
- 绑定的值是boolean类型,值为true,则复选框被选中
- 绑定的值的类型是array或者java.util.Collection,集合中有的值,对应的复选框被选中
- 对于其它绑定的类型,绑定的值相等,则对应复选框被选中
select标签
<form:select path="province">
<form:option value="0" label="请选择..." />
<form:options items="${provinces }" itemLabel="name" itemValue="id" />
</form:select>
textarea标签
hidden标签
<form:hidden path="id" />
生成Excel与PDF
输出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”;