struts2表单验证-整合国际化
参考:http://www.cnblogs.com/langlang/archive/2010/01/14/1647627.html
1、Action重写validate方法
public void validate(){ if("".equals(sysUser.name)||!sysUser.name.equals("java")){ // this.addFieldError("sysUser.name",this.getText("username.invalid")); this.addActionError(this.getText("username.invalid")); } if("".equals(sysUser.userPwd)||!sysUser.userPwd.equals("java")){ // this.addFieldError("sysUser.userPwd",this.getText("userpwd.invalid")); this.addActionError("<div class='test'>" + this.getText("userpwd.invalid") + "</div>"); } }
2、jsp
<s:form action="sysUser/userLogin.action" method="post" theme="simple"> <s:textfield name="sysUser.name" label="%{getText('userNameTag')}"></s:textfield> <s:password name="sysUser.userPwd" label="%{getText('passWordTag')}"></s:password> <s:submit value="%{getText('loginTag')}" ></s:submit> </s:form> <%-- <div> <s:fielderror> <s:param>sysUser.name</s:param> <s:param>sysUser.userPwd</s:param> </s:fielderror> </div> --%> <s:actionerror escape="false"/>
这里主要介绍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:formtheme="simple"> 不能显示错误信息,不能自动添加表格排版
总结:由于struts2的表单验证会有默认样式,所以我们可以先设置formthem=“simple”全掉默认样式。
然后用addActionError进行表单验证。(可以添加html、css代码到参数中)