基于ssh2架构的struts2验证框架错误解决
2012-09-14 17:57
447 查看
本人尝试struts2输入验证,总是出现如下状况
![](http://img.my.csdn.net/uploads/201209/14/1347615938_6898.png)
这是一个注册的action,多次点击“提交”,出现这种状况
其次,如果第一次没有正确填写(故意柳一个空不填来尝试验证功能),那么再重新 非空验证 之后,仍然无法注册到数据库,核心代码如下
<bean id="regAction" class="cn.blog.action.RegAction">
<property name="userService" ref="userService"></property>
</bean>
package cn.blog.action;
public class RegAction extends ActionSupport {
private String id;
private String password;
private String sex;
private String username;
// 注册组件userService
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
/*
getter,setter省略
*/
@Override
public String execute() throws Exception {
User user = new User();
user.setId(id);
user.setPassword(password);
user.setSex(sex);
user.setUsername(username);
if (userService.regUser(user)) {
return SUCCESS;
} else {
return ERROR;
}
}
}
验证xml代码
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.dtd">
<validators>
<field name="id">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>帐号不可为空 </message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>密码不可为空 </message>
</field-validator>
</field>
省略部分xml代码
</validators>
解决方法:将applicationContext.xml配置文件中,相关Action(此处为regAction)
<bean id="regAction" class="cn.blog.action.RegAction" scope="prototype">
<property name="userService" ref="userService"></property>
</bean>
加上红色代码 scope="prototype",问题解决
当未配置这点代码的时候,默认scope=“singleton”,如果第一次没验证通过,就算之后重新正确填写,非空验证,那么还是对scope=“singleton”状态下生成的对象x 进行操作,而对象x 是出现验证错误的生成对象,所以这样,singleton是单例
而prototype正好相反,来一个请求,新生成一个实例 。问题解决。
![](http://img.my.csdn.net/uploads/201209/14/1347615938_6898.png)
这是一个注册的action,多次点击“提交”,出现这种状况
其次,如果第一次没有正确填写(故意柳一个空不填来尝试验证功能),那么再重新 非空验证 之后,仍然无法注册到数据库,核心代码如下
<bean id="regAction" class="cn.blog.action.RegAction">
<property name="userService" ref="userService"></property>
</bean>
package cn.blog.action;
public class RegAction extends ActionSupport {
private String id;
private String password;
private String sex;
private String username;
// 注册组件userService
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
/*
getter,setter省略
*/
@Override
public String execute() throws Exception {
User user = new User();
user.setId(id);
user.setPassword(password);
user.setSex(sex);
user.setUsername(username);
if (userService.regUser(user)) {
return SUCCESS;
} else {
return ERROR;
}
}
}
验证xml代码
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.dtd">
<validators>
<field name="id">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>帐号不可为空 </message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>密码不可为空 </message>
</field-validator>
</field>
省略部分xml代码
</validators>
解决方法:将applicationContext.xml配置文件中,相关Action(此处为regAction)
<bean id="regAction" class="cn.blog.action.RegAction" scope="prototype">
<property name="userService" ref="userService"></property>
</bean>
加上红色代码 scope="prototype",问题解决
当未配置这点代码的时候,默认scope=“singleton”,如果第一次没验证通过,就算之后重新正确填写,非空验证,那么还是对scope=“singleton”状态下生成的对象x 进行操作,而对象x 是出现验证错误的生成对象,所以这样,singleton是单例
而prototype正好相反,来一个请求,新生成一个实例 。问题解决。
相关文章推荐
- 解决ssh中使用struts2验证框架提示错误后正确无法提交的问题
- 从源代码剖析Struts2中用户自定义配置转换器的两种方式——基于字段的配置转换器和基于类型的配置转换器(解决了实际系统中,因没有区分这两种工作方式的生命周期而引起的异常错误问题)
- struts2声明式验证input视图跳转到另外一个action后错误提示不显示解决办法
- 关于Struts2验证框架错误信息解决方案
- 自定义struts2验证框架的错误信息样式
- 基于Struts2,Spring4,Hibernate4框架的系统架构设计与示例系统实现
- 解决Struts2 的验证框架验证信息重复出现
- 实现基于注解(Annotation)的数据库框架(六)亲自验证反射的效率及解决办法
- Struts2验证框架无法显示错误提示的解决方案
- 三大框架整合后Struts2返回Json数据会出现的一些错误以及解决办法
- struts2验证框架错误信息无法显示的问题
- 基于Struts2验证框架的输入验证
- struts2基于验证框架的输入校验
- Strust2基于注解的Action框架中导入struts2-convention-plugin-x.x.x后启动tomcat报错解决方法
- 关于struts2验证框架,在与spring整合后重复输出错误信息的问题
- 【ssh2学习记录】4、struts2验证框架内置校验器列表
- 利用WhiteHose一步步建立分布式系统的框架(六)--校验和解决验证错误
- Struts2验证框架无法显示错误提示的解决方案
- 关于Struts2基于验证框架的输入校验的经验
- struts2验证框架的验证信息重复出现