struts2 输入校验

yellow0323 2008-05-12 12:58:57
初学struts2.0 大哥们帮帮忙啊 小弟先谢谢啦
struts2 输入校验 当输入错误密码或用户名后,出现的错误消息会叠加
当我第一次在输入页面什么都不填直接提交 提示信息如
getText("checkcode.null")
*验证码:
getText("username.null)
*用户名:
....
在返回一下刷新页面再次什么都不填 提示信息重复了:
getText("checkcode.null")
getText("checkcode.null")

*验证码:
getText("username.null)
getText("username.null)
*用户名:


register.jsp中的单如下:
<s:form action="register" method="post">
<s:label>带*号的为必填项 </s:label>
<s:textfield label="*验证码" name="checkcode"/>
<img src="bbs/jsp/Random.jsp"/>
<s:textfield name="username" label="*用户名"/>
<s:password name="password" label="*密 码"/>
<s:password name="checkpassword" label="*确认密码"> </s:password>
<s:radio label="性别" name="sex" list="#{0:'保密',1:'男',2:'女'}" value='1' />
<s:textfield label="*E-mail" name="email"/>
<s:textfield label="*密码提示问题" name="question"/>
<s:textfield label="*问题答案" name="answer"/>
<s:textfield label="生日" name="birthday"/>
<s:textfield label="website" name="website"/>
<s:textfield label="qq" name="im_qq"/>
<s:textfield label="msn" name="im_msn"/>
<s:textfield label="家庭住址" name="address"/>
<s:textfield label="头像" name="face"/>
<s:textarea label="个性签名" name="signature" cols="20" rows="5"> </s:textarea>
<s:textarea label="个人介绍" name="intro" cols="20" rows="5"> </s:textarea>
<s:submit value="提交"/>
<s:reset value="重置"/>
</s:form>
struts.xml配置:
<action name="register" class="register">
<result name="input">register.jsp </result>
<result name="success">/bbs/jsp/index.jsp </result>
</action>
applicationContext.xml中对应的配置: <bean id="register" class="com.bbs.struts.RegisterAction"/>
RegisterAction.java代码:什么都没做 所有的属性都加上去了 只有setter()和getter()以及一个execute()方法
其中 public String execute() throws Exception{
return ActionSupport.SUCCESS;
}
用struts2的输入验证框架验证
RegisterAction-validation.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!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="checkcode">
<field-validator type="requiredstring">
<param name="trim">true </param>
<message>getText("checkcode.null") </message>
</field-validator>
</field>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true </param>
<message>getText("username.null) </message>
</field-validator>

<field-validator type="stringlength">
<param name="minLength">6 </param>
<param name="maxLength">10 </param>
<message>username should be between ${minLength} and ${maxLength} </message>
</field-validator>
</field>
......
</validators>

该文件和Register.java在同一文件夹下
...全文
157 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Spancer 2009-04-20
  • 打赏
  • 举报
回复
很简单的问题,你把JSP页面中form的theme属性设为simple就可以了.
这里不涉及到action的单例问题。
baitianli2007 2008-10-06
  • 打赏
  • 举报
回复
大家事实下面的:
applicationContextv.xml文件的
bean 中加上scope=prototype 它标识bean的作用域。
<bean id="register" class="com.bbs.struts.RegisterAction" scope="prototype"/>
Kit_LO 2008-07-14
  • 打赏
  • 举报
回复
实际中哪有这么简单,楼上的不可行,那样一改,等于说没有整合struts与spring,如果action有属性需要在spring中IoC怎么办,你那样改,不就报空指针了吗
yellow0323 2008-05-12
  • 打赏
  • 举报
回复
找到一个解决方法:
应该是与spring整合出现了问题
我把struts.xml配置改为:
<action name="register" class="com.bbs.struts.RegisterAction">
<result name="input">/bbs/jsp/register.jsp </result>
<result name="success">/bbs/jsp/index.jsp </result>
</action>
然后把 appilcationContext.xml中的
<bean id="register" class="com.bbs.struts.RegisterAction"/>去掉
就没问题了!

yellow0323 2008-05-12
  • 打赏
  • 举报
回复
哦 我再试试 谢谢你啦
yellow0323 2008-05-12
  • 打赏
  • 举报
回复
我做了个只用struts2不整合spring和hibernate的测试
都不会出现这种问题
不知道怎么回事
郁闷啊
yami251139 2008-05-12
  • 打赏
  • 举报
回复
不對。。。是改為session。。。
request才會由這種情況。。。
就是scope="session"
action里面設置下就可以了
yami251139 2008-05-12
  • 打赏
  • 举报
回复
validate寫在xml里
是在啟動tomcat的時候就加載的。。。
吧你struts.xml里面的action里面的session域設置為request試試?
yellow0323 2008-05-12
  • 打赏
  • 举报
回复
会啊 刷几次他就显示多少条
yami251139 2008-05-12
  • 打赏
  • 举报
回复
你再刷幾,看看是不是會顯示3條。。。
那應該是session里面有問題吧,登錄的時候

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧