struts2.xml中的总是跳转到 input
来源:互联网 发布:软件安装管理器2016 编辑:程序博客网 时间:2024/05/01 22:27
- <s:form action="login" method="post" onsubmit="return checkLogin();">
- <s:textfield id="username" name="username" />
- <s:password id="password" name="password" />
- <s:fielderror/>
- <input type="submit" value="登陆" id="submitLogin">
- </s:form>
这是一段简单的登陆验证的代码,但是这样写代码会出现一个问题,那就是当你第一次登陆验证失败后,以后无论你在怎么输账号验证,它都会跳转到input视图,而不是login视图。
其实原因很简单,那就是action执行的时候会先执行validate方法对参数进行一些列的验证,如果他发现当前对象包含fieldError信息,就会直接给你跳转到input视图,由于我们在execute()方法中使用了addFieidError方法给对象添加了fieldErrod信息,所以当第一次验证失败再进行第二次验证的时候,action发现自己有fieldEorr信息,就直接跳转到input视图了。
如果我们上面所说的成立,那么就证明我们两次访问的是同一个action对象,但是为什么会是同一个action对象呢,我们知道struts2是线程安全的,每次请求都会创建一个新的action对象,但是为什么这里不新建了呢?这主要是因为spring的Ioc容器,我们在srping中配置struts2的时候,在bean里面有一个选项scope,这个选项是用来配置bean的作用域的。其默认值是singleton,当bean的作用域是singleton时,Ioc容器只会为该bean创建一个实例对象,以后所有对该bean的请求都是访问的这一个对象。因此我们可以将bean的作用域配置为prototype,当bean的作用域为prototype时,每次访问该bean都会创建一个新的对象。更改后的代码:
applicationContext.xml:
- <bean id="loginAction" class="jk.action.LoginAction" scope="prototype">
- <property name="userService" ref="userService"/>
- </bean>
除此之外还有一种方法,就是在action验证的时候把fieldError信息清理了
LoginAction.java:
- @Override
- public void validate() {
- super.validate();
- clearFieldErrors();
- }
- struts2.xml中的总是跳转到 input
- Struts2总是跳转到INPUT
- struts2验证出错总是跳转到input
- struts2验证出错总是跳转到input
- struts2中的action中实现了validate方法,struts.xml中的action配置了通配符,不能自动跳转到input
- struts2两个input方法的action,出错后总是返回到Input页面的解决方法
- struts2 总是返回input视图解决办法
- struts2表单提交时总是返回input
- Struts2直接跳转到web.xml里的默认路径
- Struts2 中的input
- struts2中的input标签
- IE主页总是跳转到114导航
- phpcms总是跳转到install/install.php
- Struts2中的跳转
- struts2中的跳转问题
- struts2中的跳转详解
- Struts2中的页面跳转
- struts2 action跳转到action
- 化妆基本步骤 教你轻松学画基础妆
- 获得所有表的表记录,和使用空间的SQL
- STL 源码剖析 算法 stl_algo.h -- includes
- 滴滴快的支持交通部新政 首次肯定打车软件合法地位
- Java md5
- struts2.xml中的总是跳转到 input
- [Python]函数式编程的4个常用内建函数
- Oracle TIMESTAMP的处理
- IP数据包长度问题总结
- Vim 基本配置和常用命令
- HDU 1829 A Bug's Life
- Android代码中更改TextView颜色
- 学习javacv之七:在画布上,画矩形边框
- poj 2479 (DP_优化)