关于struts2验证框架的问题!求指导。。

zhangweifeng23 2012-12-27 09:22:09
调试最开始出现的页面:
点击提交后出现的页面:
在第二个页面继续点击提交出现404错误

这是写的类:
public class user_table extends ActionSupport implements Serializable{

/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@Column(length=30)
private String account;
@Column(length=30)
private String keyword;
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getKeyword() {
return keyword;
}
public void setKeyword(String keyword) {
this.keyword = keyword;
}

@Override
public void validate(){
if(account.equals("")){
addFieldError("account","必须输入用户名");
}else if(!Pattern.matches("\\w{13}", account)){
addFieldError("account","用户名必须是字母和数字的组合且长度为13");
}
if(keyword.equals("")){
addFieldError("keyword","必须输入用户密码");
}else if(!Pattern.matches("\\w{6,18}", keyword)){
addFieldError("keyword","密码必须是字母和数字的组合且长度在(6-18)范围内");
}
}

}
...全文
257 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
一ZHI程序猿 2012-12-27
  • 打赏
  • 举报
回复
是不是namespace的原因?返回后路径变了,如果你的validate发的请求是使用相对路径的话,会找到页面的,检查一下地址栏里的路径是否正确
zhangweifeng23 2012-12-27
  • 打赏
  • 举报
回复
引用 16 楼 huimiezu 的回复:
引用 14 楼 zhangweifeng23 的回复:引用 13 楼 huimiezu 的回复:第二次点提交 有没有进validate? 我在想应该没进,如果进了的话就不会报这个错了吧!设置断点看一下嘛,还有,报的那个错,是找不到那个路径下的jsp页面
断点调试显示第二次有进validate
zhangweifeng23 2012-12-27
  • 打赏
  • 举报
回复
引用 16 楼 huimiezu 的回复:
引用 14 楼 zhangweifeng23 的回复:引用 13 楼 huimiezu 的回复:第二次点提交 有没有进validate? 我在想应该没进,如果进了的话就不会报这个错了吧!设置断点看一下嘛,还有,报的那个错,是找不到那个路径下的jsp页面
<action name="user_table" class="entity.user_table"> <result name="input">login.jsp</result> <result name="success">jspfile/login.jsp</result> </action>
huimiezu 2012-12-27
  • 打赏
  • 举报
回复
引用 14 楼 zhangweifeng23 的回复:
引用 13 楼 huimiezu 的回复:第二次点提交 有没有进validate? 我在想应该没进,如果进了的话就不会报这个错了吧!
设置断点看一下嘛,还有,报的那个错,是找不到那个路径下的jsp页面
dracularking 2012-12-27
  • 打赏
  • 举报
回复
引用 12 楼 zhangweifeng23 的回复:
引用 11 楼 dracularking 的回复: 引用 6 楼 zhangweifeng23 的回复:5楼,您好!这个好像没什么关系啊!这是我之前用struts2输出图片验证码用的,和这个输入验证有关系吗? sorry,可能这里我搞错了,关键就是点击提交后经历validate execute之类最终仍要返回login页,才能接续接受validate 可是问题是我现在不知道要怎么写这个exe……
SUCCESS对应哪个页面?(验证失败按理是FAILURE,不过这是业务逻辑问题)
zhangweifeng23 2012-12-27
  • 打赏
  • 举报
回复
引用 13 楼 huimiezu 的回复:
第二次点提交 有没有进validate?
我在想应该没进,如果进了的话就不会报这个错了吧!
huimiezu 2012-12-27
  • 打赏
  • 举报
回复
第二次点提交 有没有进validate?
zhangweifeng23 2012-12-27
  • 打赏
  • 举报
回复
引用 11 楼 dracularking 的回复:
引用 6 楼 zhangweifeng23 的回复:5楼,您好!这个好像没什么关系啊!这是我之前用struts2输出图片验证码用的,和这个输入验证有关系吗? sorry,可能这里我搞错了,关键就是点击提交后经历validate execute之类最终仍要返回login页,才能接续接受validate
可是问题是我现在不知道要怎么写这个execute才好,刚刚写了个execute还是会出那样的错。。。。
dracularking 2012-12-27
  • 打赏
  • 举报
回复
引用 6 楼 zhangweifeng23 的回复:
5楼,您好!这个好像没什么关系啊!这是我之前用struts2输出图片验证码用的,和这个输入验证有关系吗?
sorry,可能这里我搞错了,关键就是点击提交后经历validate execute之类最终仍要返回login页,才能接续接受validate
zhangweifeng23 2012-12-27
  • 打赏
  • 举报
回复
zhangweifeng23 2012-12-27
  • 打赏
  • 举报
回复
@Override public String execute() throws Exception{ return SUCCESS; } @Override public void validate(){ if(account.equals("")){ addFieldError("account","必须输入用户名"); }else if(!Pattern.matches("\\w{13}", account)){ addFieldError("account","用户名必须是字母和数字的组合且长度为13"); } if(keyword.equals("")){ addFieldError("keyword","必须输入用户密码"); }else if(!Pattern.matches("\\w{6,18}", keyword)){ addFieldError("keyword","密码必须是字母和数字的组合且长度在(6-18)范围内"); } }
  • 打赏
  • 举报
回复
exetuce 你怎么写的。
zhangweifeng23 2012-12-27
  • 打赏
  • 举报
回复
3楼的大侠,我重写了exetuce()方法还是不行啊!
zhangweifeng23 2012-12-27
  • 打赏
  • 举报
回复
5楼,您好!这个好像没什么关系啊!这是我之前用struts2输出图片验证码用的,和这个输入验证有关系吗?
dracularking 2012-12-27
  • 打赏
  • 举报
回复
引用 3 楼 fangmingshijie 的回复:
<action name="user_table" class="entity.user_table"> <result name="input">login.jsp</result> <result>jspfile/sys_log.jsp</result> </action> 问题出现在这里,你要重写execute方法,并为登陆失败配置跳转到log……
+1 验证后跳转到哪个页面是不是没配 <action name="Verification_code" class="action.verification_code"> <result type="stream"> <param name="contentType">image/jpeg</param> <param name="inputName">inputStream</param> </result> </action>
zhangweifeng23 2012-12-27
  • 打赏
  • 举报
回复
引用 3 楼 fangmingshijie 的回复:
<action name="user_table" class="entity.user_table"> <result name="input">login.jsp</result> <result>jspfile/sys_log.jsp</result> </action> 问题出现在这里,你要重写execute方法,并……
那我去试试,刚开始还以为是重复提交,菜鸟伤不起啊!
  • 打赏
  • 举报
回复
<action name="user_table" class="entity.user_table"> <result name="input">login.jsp</result> <result>jspfile/sys_log.jsp</result> </action> 问题出现在这里,你要重写execute方法,并为登陆失败配置跳转到login.jsp的试图。
zhangweifeng23 2012-12-27
  • 打赏
  • 举报
回复
怎么没人啊!各路大神。。。。
zhangweifeng23 2012-12-27
  • 打赏
  • 举报
回复
这是我的配置文件: <?xml version="1.0" encoding="gbk"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true"></constant> <package name="default" extends="struts-default"> <action name="Verification_code" class="action.verification_code"> <result type="stream"> <param name="contentType">image/jpeg</param> <param name="inputName">inputStream</param> </result> </action> <action name="user_table" class="entity.user_table"> <result name="input">login.jsp</result> <result>jspfile/sys_log.jsp</result> </action> </package> </struts>
dracularking 2012-12-27
  • 打赏
  • 举报
回复
引用 21 楼 zhangweifeng23 的回复:
我解决了,谢谢各位!我改的是struts.xml里面的代码 <action name="user_table" class="entity.user_table"> <result name="input">/jspfile/login.jsp</result> </action>
有一个疑问,断点既然第二次也能进validate,第一次电击提交后,停留在了login页,第二次怎么404了,两次返回的页面应该是同一个吧?
加载更多回复(2)

67,513

社区成员

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

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