- 浏览: 1092057 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (453)
- Struts2 (30)
- Spring (14)
- iBATIS (6)
- Hibernate (13)
- JVM (5)
- JSON (10)
- Ajax (5)
- Flex (1)
- JavaScript (25)
- PowerDesigner (4)
- 项目管理 (7)
- 数据库 (29)
- 生活 (18)
- 软件应用 (21)
- 无线技术 (2)
- Linux (39)
- TOP开发学习 (2)
- JAVA工具小TIPS (2)
- Java通用 (52)
- XML (3)
- 软件测试 (29)
- Maven (10)
- Jquery (1)
- 正则表达式 (3)
- 应用服务器 (15)
- Android (5)
- linux 和windowx 下 tomcat 设置JVM (8)
- 应用服务器 连接池 (4)
- Linux 后台输出中文乱码 (1)
- Hadoop (28)
- python (2)
- Kafka (7)
- Storm (5)
- Elasticsearch (7)
- fddd (1)
最新评论
-
kafodaote:
Kafka分布式消息系统实战(与JavaScalaHadoop ...
分布式消息系统Kafka初步 -
小灯笼:
LoadRunner性能测试实战课程网盘地址:http://p ...
LoadRunner性能测试应用(八) -
成大大的:
Kafka分布式消息系统实 ...
分布式消息系统Kafka初步 -
hulalayaha2:
Loadrunner性能测试视频教程下载学习:http://p ...
LoadRunner性能测试应用(八) -
993042835:
搞好 谢谢
org.hibernate.exception.ConstraintViolationException: could not delete:
采用struts2防止重复提交后无法采用request.getParameter("xxx")得到页面隐藏框值解决方案(转)
- 博客分类:
- Struts2
采用struts2防止重复提交后无法采用request.getParameter("xxx")得到页面隐藏框值解决方案
采用struts2防止重复提交方案采用的是
http://blog.csdn.net/mzyp/archive/2009/07/15/4350512.aspx
该方案采用后,后来有一次页面增加一个批量调度按钮,需要从该页面取得某隐藏框值,结果同事试了多种方案也未解决该问题,其中包括
0. <action name="BatchSchedule" class="vs.dascsl.action.datatransfer.SchedulerAction" method="batchSchedule">
<!--<interceptor-ref name="completeStack"/> -->
<!--<interceptor-ref name="execAndWait"/>-->
<!-- 此段代码为作用是将request请求的参数传递到 action 中 -->
<!--<interceptor-ref name="model-driven"/> -->
<!--<interceptor-ref name="params"/> -->
<!-- <result name="wait">jsp/ds_dm_mgr/wait.jsp</result> -->
<result name="error" type="redirect-action">SchedulersList</result>
<result name="success" type="redirect-action">SchedulersList</result>
</action>
他又试了加上 <interceptor-ref name="servletConfig"></interceptor-ref> 用两种方式也得不到request,
1.HttpServletRequest request = ServletActionContext.getRequest();
2.HttpServletRequest request = (HttpServletRequest)ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);
经过一番努力,我终于解决该问题,JSP及相关JAVA文件都没有改变,只改了struts.xml一个地方,参见如下:
<action name="BatchSchedule" class="vs.dascsl.action.datatransfer.SchedulerAction" method="batchSchedule">
<interceptor-ref name="completeStack"/>
<interceptor-ref name="execAndWait"/>
<interceptor-ref name="alias"/> <!--就加了此句-->
<result name="wait">jsp/ds_dm_mgr/wait.jsp</result>
<result name="error" type="redirect-action">SchedulersList</result>
<result name="success" type="redirect-action">SchedulersList</result>
</action>
理论来源于
浅谈Struts2拦截器的原理与实现
开始,我对解决该问题也没有把握,当看到上述资料中 有“ Alias Interceptor 在不同请求之间将请求参数在不同名字件转换,请求内容不变”,我看到一丝亮光,只有亮光当然还不行,经过几轮测试,这个亮光终于变成了康庄大道。
后记:
以上方案又经严格测试,发现不够稳定。
最终方案返璞归真:定义一个私有变量,变量与jsp页面隐藏框名称相同,并增加get/set方法。
至于我同事提出的原来写法有
ServletContext ctx = request.getSession().getServletContext();
由于request得不到,所以这种方式得到 ServletContext更是无从谈起!
我解决方案如下:
原来由于公共action已经写有
public class BaseAction extends ActionSupport implements SessionAware,
ServletRequestAware, ServletResponseAware{
.........
}
我又增加了一个实现接口类ServletContextAware,也即
public class BaseAction extends ActionSupport implements SessionAware,
ServletRequestAware, ServletResponseAware ,ServletContextAware {
.......
protected ServletContext context;
public void setServletContext(ServletContext arg0) {
this.context = arg0;
}
.........
}
由于 SchedulerAction继承于 BaseAction,故可直接引用context解决了这一个难题。
从后来应用效果来看:超赞^_^
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mzyp/archive/2009/08/13/4437750.aspx
发表评论
-
SSO单点登录解决方案[转载]
2013-05-01 12:41 8961 什么是单点登陆 ... -
ognl.MethodFailedException: Method "setId" failed for object
2013-04-23 20:27 1533log4jStrutsJavaWeb ... -
response设置编码的三种方式
2013-04-13 22:14 36584在一个utf-8项目中,调用支付宝的及时到账支付接口,本身的 ... -
dynamic web project 生成位置
2013-04-07 13:26 868dynamic web project 生成位置 在wor ... -
Spring的自动任务中调用业务类方法
2012-03-21 15:18 1438Spring 中使用 QuartzJobBean 来进行定 ... -
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
2011-08-02 12:46 2099我在使用Struts2进行开发的时候老是报下面的错误: 严重: ... -
java.lang.NoSuchMethodException:
2011-01-06 22:46 1383java.lang.NoSuchMethodException ... -
struts2解决中文乱码的问题
2010-12-13 13:45 1078在struts2.0中,解决中文乱码的问题有时候很糟人。以下是 ... -
jquery struts2 IE8 乱码问题
2010-12-03 14:12 1261原因如下: 我们是用struts2框架,str ... -
Struts2中配置action 传参问题
2010-09-28 10:51 1463最近在Struts2中配置action时,经常要在配置文件中给 ... -
org.apache.struts2.json.JSONException:
2010-08-05 17:47 12170org.apache.struts2.json.JSONExc ... -
Struts 2 完成直接输出流到浏览器
2010-04-27 16:58 1850Struts 2 完成直接输出流到浏览器 2008年10月1 ... -
java图片处理 文字水印 图片水印 缩放 补白
2010-04-26 08:56 1055java图片处理 文字水印 图片水印 缩放 补白时间:2009 ... -
在java中集合的遍历是怎样遍历的
2010-04-19 21:05 999List<String> ... -
破解(百度,网易,新浪,搜狐,QQ空间)图片防盗链 转
2010-04-15 14:37 2097破解(百度,网易,新浪,搜狐,QQ空间)图片防盗链 大家在连 ... -
java伪静态--文件防盗链的实现 转
2010-04-15 14:35 3437java伪静态--文件防盗链的实现 收藏 现在UrlRewri ... -
Lucene基于Java的全文检索引擎简介(转)
2010-04-08 09:13 807ddd -
jsp中的basePath和path
2010-03-26 09:15 1710jsp中的basePath和path 2010年01月13日 ... -
Struts2的标签 逻辑标签---IF标签
2010-03-22 21:40 3250Struts2的标签库中,有一 ... -
高级项目进行时 转
2010-03-11 18:32 968高级项目进行时 已有 ...
相关推荐
request.getAttribute() 用于获取当前请求中的属性,而 request.getParameter() 用于获取当前请求中的参数。 2. response.sendRedirect() 和 forward() 区别? response.sendRedirect() 用于重定向到一个新的 URL...
2. **request.getAttribute()与request.getParameter()的区别**: - `getAttribute()`获取的是对象,可以存储任意类型的数据,而`getParameter()`返回的是字符串,用于获取请求参数的值。 - `getAttribute()`的...
4. **静态包含与动态包含**:`<%@include file="xxx.jsp"%>`是静态包含,编译时合并到当前JSP页面;`<jsp:include>`是动态包含,运行时根据请求动态加载页面。 5. **List与Map的区别**:List是有序集合,元素可以...
2. `request.getAttribute()`和`request.getParameter()`的区别是什么? `getAttribute()`用于获取请求范围内的对象,返回的是Object类型,而`getParameter()`用于获取请求参数,返回的是String或String[]类型。 3...
本文将深入探讨这一问题,并提供详细的解决方案。 ### Ajax与字符编码 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它主要通过在后台与服务器进行...
- `request.getParameter()`:用于获取HTTP请求中的参数值,返回的是字符串。 3. **响应重定向与转发**: - `response.sendRedirect()`:客户端重定向,浏览器发起新的HTTP请求,URL可见变化。 - `forward()`:...
- **异常处理不完整**:在 `catch` 块中只声明了 `Exception` 对象,但没有对其进行任何处理,这可能导致程序出现未知错误时无法得到适当的反馈。 改进后的代码可能如下所示: ```java try (Connection conn = ...
10、request.getAttribute() 和 request.getParameter() 有何区别? 88 11. jsp有哪些内置对象?作用分别是什么? 分别有什么方法? 88 12. jsp有哪些动作?作用分别是什么? 88 13、JSP的常用指令 89 14. JSP中动态...
10、request.getAttribute() 和 request.getParameter() 有何区别? 88 11. jsp有哪些内置对象?作用分别是什么? 分别有什么方法? 88 12. jsp有哪些动作?作用分别是什么? 88 13、JSP的常用指令 89 14. JSP中动态...
10、request.getAttribute() 和 request.getParameter() 有何区别? 88 11. jsp有哪些内置对象?作用分别是什么? 分别有什么方法? 88 12. jsp有哪些动作?作用分别是什么? 88 13、JSP的常用指令 89 14. JSP中动态...
10、request.getAttribute() 和 request.getParameter() 有何区别? 88 11. jsp有哪些内置对象?作用分别是什么? 分别有什么方法? 88 12. jsp有哪些动作?作用分别是什么? 88 13、JSP的常用指令 89 14. JSP中动态...
10、request.getAttribute() 和 request.getParameter() 有何区别? 96 11. jsp有哪些内置对象?作用分别是什么? 分别有什么方法? 96 12. jsp有哪些动作?作用分别是什么? 97 13、JSP的常用指令 97 14. JSP中动态...
10、request.getAttribute() 和 request.getParameter() 有何区别? 88 11. jsp有哪些内置对象?作用分别是什么? 分别有什么方法? 88 12. jsp有哪些动作?作用分别是什么? 88 13、JSP的常用指令 89 14. JSP中动态...
10、request.getAttribute() 和 request.getParameter() 有何区别? 88 11. jsp有哪些内置对象?作用分别是什么? 分别有什么方法? 88 12. jsp有哪些动作?作用分别是什么? 88 13、JSP的常用指令 89 14. JSP中动态...