第一种,最简单的,Struts2 使用addFieldError方法和s:fieldError标签简单处理数据校验
步骤:
第一步:action-validation.xml配置
或者在action中配置 this.addFieldError("testquestionVO.areaId", "您输入的帐号不存在!");
第二步:jsp页面配置
<div><s:fielderror fieldName="testquestionVO.areaId"/></div>
当然,在配置这些时,struts中需配置input,以保证当页面验证不通过可以返回到正确的页面
这样就OK了。链接一个比较详细的http://hi.baidu.com/469741414/blog/item/4fa3918d5a218fef503d92e2.html
第二种,Struts2 使用ActionError方法和s:actionError标签简单处理数据校验
这个算下来更简单,
第一步,在action中配置,类似于下
第二步,在jsp页面中配置
addActionError()与addFieldError()有什么不同, 这里说一说,
这两个都是com.opensymphony.xwork2.ActionSupport类下的方法.
----------------------------------------------------------------------------------
addActionError(StringanErrorMessage)
添加一个Action级别的错误消息到Action
anErrorMessage:错误消息
显示消息的标签是:<s:actionerror/> ,显示全部的Action级别的错误消息,可以加CSS
anErrorMessage被存放在List中. 可以去看源码
----------------------------------------------------------------------------------
addFieldError(StringfieldName,StringerrorMessage)
给一个字段(属性) 添加错误消息
fieldName:字段(属性)名
errorMessage:错误消息
errorMessage被存放在一个Map中. 可以去看源码
显示消息的标签是:
<!-- 例子 1 -->
<s:fielderror/>显示全部的错误消息(用addFieldError方法添加的)
<!--例子2 -->
<s:fielderror theme="" fieldName="fuwuId"/>
<!--例子3 -->
<s:fielderror>
<s:param>field1</s:param>显示指定的field1字段的错误消息
<s:param>field2</s:param>显示指定的field2字段的错误消息
</s:fielderror>
<s:form .... > .... </s:form>
------------------------------------------------------------------
默认主题下,<s:form />能显示错误信息,能自动添加表格排版,
修改主题:<s:formtheme="simple">不能显示错误信息,不能自动添加表格排版,我们才好自己发挥啊.
-----------------------------------------------
ActionSupport类还有一个public booleanhasErrors() 方法, 其实他内部实现是这样的:
(hasActionErrors() || hasFieldErrors()) , 分别检查有无Action级别的错误信息, 有无Fidld级别的错误的信息.
只要一个为真, 就跳回input 实图, 并显示错误信息(如果你写了相应的标签)