SpringMVC视图、表单

1、视图对象
不同类型的视图实现技术对应不同的View实现类,视图对象由视图解析器负责实例化,因为视图Bean是无状态的,所以不会有线程安全的问题。
这里写图片描述

2、视图解析器
视图解析器将一个逻辑视图名解析为一个具体的视图对象。
这里写图片描述
可以选择一种视图解析器或混用多种视图解析器,可以通过orderNo属性指定解析器的优先顺序,值越小优先级越高。其中ContentNegotiatingViewResolver默认是最高优先级,InternalResourceViewResolver默认是最低优先级。

SpringMVC会按照视图解析器的优先级顺序对逻辑视图名进行解析,直到解析成功并返回试图对象。

2、JSP和JSTL

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

3、Spring表单标签
通过Spring表单标签,可以很容易将模型数据中的表单/命令对象绑定到HTML表单元素中。
在使用表单标签之前,要在JSP页面添加一行声明:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

一般情况下,通过GET请求获取表单页面,通过POST请求提交表单页面,因此,获取表单和提交表单的URL是相同的。所以不需通过action属性指定提交的目标URL。

这里写图片描述
这里写图片描述

这些标签大都拥有以下属性:
1、path:用属性路径表示的表单对象属性,如userName,dept.deptName
2、htmlEscape:绑定的表单属性值是否要对HTML特殊字符进行转换,默认是true
3、cssClass:表单组件对于的css样式
4、cssErrorClass:表单组件的数据存在错误时,采用的css样式

关于复选框、下拉框和单选框与表单对象属性的映射问题。
当HTML页面中的所有复选框没有勾选时,表单提交所对应的HTTP请求报文不会包含该复选框的参数名,所以会造成表单数据绑定出现问题,无法调用表单对象的set方法。(如果这个表单对象已经缓存到session中,且原来是有值的,现在提交之后,没有勾选,并不会导致该属性被置为空,造成数据的不一致)

解决的办法是在每个复选框后添加一个隐藏组件,在对于的复选框名字前添加下划线,作为隐藏组件的名字。告诉SpringMVC存在这样一个复选框,保证服务器端的表单对象和页面中的表单组件数据的一致性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值