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,因为用相同的实体类提交和注册比较方便。

大家有什么办法吗???
展开
 我来答
cound123andy
2011-01-24 · 超过21用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:61.8万
展开全部
/* '>' 用>表示;

'<' 用<表示

'&' 用&表示 */

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生成中文字符码)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式