struts2的验证框架——非空验证,即使输入了,也提示错误信息
应该是很简单的东西。请各位看看。就是一个非常简单的验证,用的是struts2提供的验证框架,我复制了一些关键的代码:jsp里的表单:<s:formaction="regi...
应该是很简单的东西。请各位看看。就是一个非常简单的验证 ,用的是struts2提供的验证框架,
我复制了一些关键的代码:
jsp里的表单:<s:form action="register" theme="simple">
jsp里的文本框:<s:textfield name="userName" label="userName" />
RegisterAction: private String userName;//定义属性 然后还有一个简单的getter setter
RegisterAction-validation.xml:
<field name="userName">
<field-validator type="requiredstring">
<message>userName不能为空</message>
</field-validator>
<field-validator type="stringlength">
<param name="maxLength">12</param>
<param name="minLength">6</param>
<message>userName should be between ${minLength} and ${maxLength}</message>
</field-validator>
</field>
结果是这样的:无论我输不输,文本框上方都会提示userName不能为空
我把struts2的源码下下来了,调试跟踪,当表单提交后,进入set方法的时候,
userName都是有值的!再进RequiredStringValidator(requiredstring用的是这个类)的validate方法 方法开头有两行这样的代码:
String fieldName = getFieldName();
Object value = this.getFieldValue(fieldName, object);
第一行执行后fieldName = "userName";
第二行执行后value = null!!
我觉得第2行是关键,所以页面会有错误显示。
一个很简单的功能,不知道错在哪里,如果资料提供不全面,请说
真的很简单的一个项目,如果哪位兄弟有耐心 我把项目发你邮箱你你帮我看看就最好了
我的版本是struts-2.1.6
我是看的浪曦教程 然后做的.好像是和视频里是一模一样的啊 展开
我复制了一些关键的代码:
jsp里的表单:<s:form action="register" theme="simple">
jsp里的文本框:<s:textfield name="userName" label="userName" />
RegisterAction: private String userName;//定义属性 然后还有一个简单的getter setter
RegisterAction-validation.xml:
<field name="userName">
<field-validator type="requiredstring">
<message>userName不能为空</message>
</field-validator>
<field-validator type="stringlength">
<param name="maxLength">12</param>
<param name="minLength">6</param>
<message>userName should be between ${minLength} and ${maxLength}</message>
</field-validator>
</field>
结果是这样的:无论我输不输,文本框上方都会提示userName不能为空
我把struts2的源码下下来了,调试跟踪,当表单提交后,进入set方法的时候,
userName都是有值的!再进RequiredStringValidator(requiredstring用的是这个类)的validate方法 方法开头有两行这样的代码:
String fieldName = getFieldName();
Object value = this.getFieldValue(fieldName, object);
第一行执行后fieldName = "userName";
第二行执行后value = null!!
我觉得第2行是关键,所以页面会有错误显示。
一个很简单的功能,不知道错在哪里,如果资料提供不全面,请说
真的很简单的一个项目,如果哪位兄弟有耐心 我把项目发你邮箱你你帮我看看就最好了
我的版本是struts-2.1.6
我是看的浪曦教程 然后做的.好像是和视频里是一模一样的啊 展开
5个回答
展开全部
是不是那个parameterInterceptor拦截器没有得到继承啊~~
所以不能把参数传过去啊
package extends="struts-default"
default-interceptorstack name=complete
这两个是包含的
你是不是都没用啊?
我不知道说得对不对啊~~
所以不能把参数传过去啊
package extends="struts-default"
default-interceptorstack name=complete
这两个是包含的
你是不是都没用啊?
我不知道说得对不对啊~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>userName不能为空</message>
</field-validator>
<param name="trim">true</param>
<message>userName不能为空</message>
</field-validator>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-10-24
展开全部
难道是函数调用有错误?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
照理说应该不会.是不是你的struts的版本问题..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询