Struts2 validation验证框架的问题!! 50
问题补充:同一页面index.jsp用户登录---------登录区<s:formaction="guestLogin"namespace="/guest"><s:tex...
问题补充:
同一页面index.jsp
用户登录---------
登录区
<s:form action="guestLogin" namespace="/guest">
<s:textfieldname="guestNick" /><s:fielderror><s:param>guestNick</s:param></s:fielderror>
密码:
<s:password name="guestPwd" /><s:fielderror><s:param>guestPwd</s:param></s:fielderror>
</s:form>
用户注册区
<s:form action="guestRegedit" namespace="/guest">
昵称 <s:textfield name="guestNick" /><s:fielderror><s:param>guestNick</s:param></s:fielderror>
密码 <s:password name="guestPwd" /><s:fielderror><s:param>guestPwd</s:param></s:fielderror>
</s:form>
---------------------------
现在的问题就是,同一页面2块form里返回的错误信息都绑定了相同的name (guestNick和guestPwd),我在验证登录区的时候就把错误信息显示的同时,却也同时传到了注册区的相同name的fielderror里去了,我不想用不同的name,因为用相同的实体类提交和注册比较方便。
大家有什么办法吗??? 展开
同一页面index.jsp
用户登录---------
登录区
<s:form action="guestLogin" namespace="/guest">
<s:textfieldname="guestNick" /><s:fielderror><s:param>guestNick</s:param></s:fielderror>
密码:
<s:password name="guestPwd" /><s:fielderror><s:param>guestPwd</s:param></s:fielderror>
</s:form>
用户注册区
<s:form action="guestRegedit" namespace="/guest">
昵称 <s:textfield name="guestNick" /><s:fielderror><s:param>guestNick</s:param></s:fielderror>
密码 <s:password name="guestPwd" /><s:fielderror><s:param>guestPwd</s:param></s:fielderror>
</s:form>
---------------------------
现在的问题就是,同一页面2块form里返回的错误信息都绑定了相同的name (guestNick和guestPwd),我在验证登录区的时候就把错误信息显示的同时,却也同时传到了注册区的相同name的fielderror里去了,我不想用不同的name,因为用相同的实体类提交和注册比较方便。
大家有什么办法吗??? 展开
1个回答
展开全部
/* '>' 用>表示;
'<' 用<表示
'&' 用&表示 */
1.把 “类名-validation” 文件放到与相应类相同的目录下
2.在struts.xml中配置默认的<result name="input">...</result>
3.在前台页面输出<s:fielderror/>
下面是我们要在 类名-validation.xml里面写的校验
第一种:字段校验
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<!-- //userName字段名,下面类似,用户按照自己所定义的配置--!>
<!—检验用户名的长度 -- >
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">8</param>
<message>用户名长度必须在${minLength}-${maxLength}位之间</message>
</field-validator>
<!—检验用户名是否已输入 -- >
<field-validator type="requiredstring">
<message>请输入用户名</message>
</field-validator>
</field>
<field name="password">
<!—检验密码的长度 -- >
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">8</param>
<message>密码长度必须在${minLength}-${maxLength}位之间</message>
</field-validator>
<!—检验密码是否已输入 -- >
<field-validator type="requiredstring">
<message>请输入密码</message>
</field-validator>
</field>
<field name="repassword">
<!—检验确认密码的长度 -- >
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">8</param>
<message>确认密码长度必须在${minLength}-${maxLength}位之间</message>
</field-validator>
<!—检验确认密码是否已输入 -- >
<field-validator type="requiredstring">
<message>请输入确认密码</message>
</field-validator>
<!—检验密码和确认密码的输入内容是否一致 -- >
<field-validator type="fieldexpression">
<param name="expression">password==repassword</param>
<message>确认密码和密码输入不一致</message> /* fieldexpress里面的param写返回boolean的表达式 */
</field-validator>
</field>
<field name="birthday">
<!—检验生日是否已输入 -- >
<field-validator type="required">
<message>请输入生日日期</message>
</field-validator>
<!—检验输入日期是否在一个有效日期范围内 -- >
<field-validator type="date">
<param name="min">1928-01-01</param>
<param name="max">2004-01-01</param>
<message>输入生日日期无效</message>
</field-validator>
</field>
<field name="mobile">
<!—检验手机号码是否已输入 -- >
<field-validator type="requiredstring">
<message>请输入手机号码</message>
</field-validator>
<!—检验输入手机号码长度是否是11位有效手机号码-- >
<field-validator type="stringlength">
<param name="minLength">11</param>
<message>请输入正确的手机号码,号码位数必须为11位</message>
</field-validator>
</field>
<field name="age">
<!—检验年龄是否已输入 -- >
<field-validator type="required">
<message>请输入年龄</message>
</field-validator>
<!—检验输入年龄是否符合特定年龄范围 -- >
<field-validator type="int">
<param name="min">1</param>
<param name="max">80</param>
<message>年龄必须在${min}-${max}岁之间</message>
</field-validator>
</field>
</validators>
第二种:非字段校验
<validator type="requiredstring">
<param name="fieldName">user.userName</param> /* fieldName参数对所有要校验的都不变,其他参数跟字段校验大致相同 */
<message>用户名不能为空!!!!!!!!</message>
</validator>
**********当用户输入类型不符合时,在相应类相同的目录下加上一个 类名.properties 的文件
**********里面写:invalid.fieldvalue.属性=... (其中...可用jdk里面的native2ascii.exe生成中文字符码)
'<' 用<表示
'&' 用&表示 */
1.把 “类名-validation” 文件放到与相应类相同的目录下
2.在struts.xml中配置默认的<result name="input">...</result>
3.在前台页面输出<s:fielderror/>
下面是我们要在 类名-validation.xml里面写的校验
第一种:字段校验
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<!-- //userName字段名,下面类似,用户按照自己所定义的配置--!>
<!—检验用户名的长度 -- >
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">8</param>
<message>用户名长度必须在${minLength}-${maxLength}位之间</message>
</field-validator>
<!—检验用户名是否已输入 -- >
<field-validator type="requiredstring">
<message>请输入用户名</message>
</field-validator>
</field>
<field name="password">
<!—检验密码的长度 -- >
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">8</param>
<message>密码长度必须在${minLength}-${maxLength}位之间</message>
</field-validator>
<!—检验密码是否已输入 -- >
<field-validator type="requiredstring">
<message>请输入密码</message>
</field-validator>
</field>
<field name="repassword">
<!—检验确认密码的长度 -- >
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">8</param>
<message>确认密码长度必须在${minLength}-${maxLength}位之间</message>
</field-validator>
<!—检验确认密码是否已输入 -- >
<field-validator type="requiredstring">
<message>请输入确认密码</message>
</field-validator>
<!—检验密码和确认密码的输入内容是否一致 -- >
<field-validator type="fieldexpression">
<param name="expression">password==repassword</param>
<message>确认密码和密码输入不一致</message> /* fieldexpress里面的param写返回boolean的表达式 */
</field-validator>
</field>
<field name="birthday">
<!—检验生日是否已输入 -- >
<field-validator type="required">
<message>请输入生日日期</message>
</field-validator>
<!—检验输入日期是否在一个有效日期范围内 -- >
<field-validator type="date">
<param name="min">1928-01-01</param>
<param name="max">2004-01-01</param>
<message>输入生日日期无效</message>
</field-validator>
</field>
<field name="mobile">
<!—检验手机号码是否已输入 -- >
<field-validator type="requiredstring">
<message>请输入手机号码</message>
</field-validator>
<!—检验输入手机号码长度是否是11位有效手机号码-- >
<field-validator type="stringlength">
<param name="minLength">11</param>
<message>请输入正确的手机号码,号码位数必须为11位</message>
</field-validator>
</field>
<field name="age">
<!—检验年龄是否已输入 -- >
<field-validator type="required">
<message>请输入年龄</message>
</field-validator>
<!—检验输入年龄是否符合特定年龄范围 -- >
<field-validator type="int">
<param name="min">1</param>
<param name="max">80</param>
<message>年龄必须在${min}-${max}岁之间</message>
</field-validator>
</field>
</validators>
第二种:非字段校验
<validator type="requiredstring">
<param name="fieldName">user.userName</param> /* fieldName参数对所有要校验的都不变,其他参数跟字段校验大致相同 */
<message>用户名不能为空!!!!!!!!</message>
</validator>
**********当用户输入类型不符合时,在相应类相同的目录下加上一个 类名.properties 的文件
**********里面写:invalid.fieldvalue.属性=... (其中...可用jdk里面的native2ascii.exe生成中文字符码)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询