在request参数中过滤掉一个一个参数的问题?(不用传统的过滤器实现) 哪位对过滤器的原理理解的比较透的仁兄帮帮忙啊!我想实现的功能是这样的:页面1 传递3个参数给action2 ,action2接到参数后做相应的处理,处理完以后将参数再传给action3,传的过程中我想将原来的页面1传过来的3个参数只传两个给action3(也就是说action2在传参数给action3的时候过滤掉了一个参数)。虽然用传统的过滤器也可以实现,但我觉得应该不需要那么烦就可以实现吧! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,为了使action可重用性变强,我在每个action里都设置了cases变量,用它来根据得到的值来选择不同的转向,但也就是这样出现了以上了问题,页面1传给action2的时候,参数中有cases变量和id变量,但action2传给action3的时候,我要用前面的id的值,但同时也得到了cases的值。这个值不是我想要的,我要把cases这个值在action2传给action3的过程中修改一下,修改成action3可以可以接受的值才行。所以就提出了这个问题!谢谢你帮忙解答啊 那你可以用setAttribute()方法来实现呀,用选择语句判断下 request中获得参数的方式有两种,一种是getAttribute()和setAttribute(),另外一种是getParameter()后一种主要是用来从url中取得参数,我的参数都是用url传的,用第一种方法根本就得不到url传过来得参数值啊!呵呵,要是有setParameter()方法就好了,我直接就解决它 这样,你中间页面getParameter一下,然后用个hidden接住,再中间页面再提交,提交前处理一下就好了,就能刷新这个属性了 setParameter 其实内置了,就看你想到没有了 如果你的action是想重复使用的话,那就没有必要设定cases的值。每个action都有自己的特定的功能。把action里面的cases去掉,也许会避免这个问题。 能不能将setParameter的用法说说啊,用中间页面接也可以。但我联想到servlet的过滤器就可以实现我所说的功能,我就是想问问可不可以在我的类里面通过代码实现象servlet的过滤器一样的功能啊 其实知道的解决方法就有好几种了,我就是想问问有没有可以象servlet的过滤器那样实现的方法 我知道的解决方法:1、将每个action中cases都以不同的命名(这个用了,会感觉很乱)2、在action用new forward(“。。”,true)实现,(这个是我知道的比较好的解决方法,但问题也是比较明显的)3、干脆不要加cases变量了(这个用了,只能给自己找更大的麻烦)4、添加一个过滤器,在action2转到action3之前调用一下 我之所以重用action就是因为有些action的相似性太大了,他们唯一的区别就是转向的jsp页面不同比如:前台的显示所有信息的list,后台的显示所有信息的list,他们的jsp页面可能允许做的操作不同,但他们都是list操作,取得的数据都是一样的 setParameter有这个方法吗?我想的是: 在xx-config.xml中配置如下 <action type="" scope="request" parameter="method" path="/action2"> <forward name="action3" path="/action3" /> </action> <action type="" scope="request" parameter="method" path="/action3"> </action> action2的代码包含: String id = request.getParameter("id"); String cases = request.getParameter("cases"); //对cases处理完后,给cases赋于action3需要的值或者直接给个cases3值 String cases3 = .....//代码省略 request.setAttribute("id", id); request.setAttribute("cases",cases3); mapping.findForward("action3"); action3的代码包含: String id = (String)request.getAttribute("id"); String cases = request.getParameter("cases"); if((cases == null)||(cases.equals(""))) cases = (String)request.getAttribute("cases"); 这样就可以 得到 cases的值了。if的作用是便于楼主说的每个action都有cases变量的重用,其实如要要严谨的话,应该加上个if从url取不着值时,就从属性里取。 谢谢谢谢!!!!!!!tanchuyue() 海康视频怎么能再jsp html页面中实现在线播放 请教个不算问题的问题 紧急求助:jsp虚拟主机与虚拟目录的问题! 收邮件l连续刷新的时候报这个异常大家帮帮忙啊~~ 如何读取js函数的数据 我想在同一个页面不跳转的情况下获取这个隐藏框的value 如何用JSP实现短消信?网上等待中。。。。 tomcat问题,上传图片的问题 在线考试系统,从一个题库中随机抽题,不能重复,难度自适应,怎么办? strtus2、My97DatePicker的使用错误 求助第一天用struts遇到的错误 子窗口中的超连接向父窗体传值
为了使action可重用性变强,我在每个action里都设置了cases变量,用它来根据得到的值来选择不同的转向,
但也就是这样出现了以上了问题,
页面1传给action2的时候,参数中有cases变量和id变量,
但action2传给action3的时候,我要用前面的id的值,但同时也得到了cases的值。这个值不是我想要的,我要把cases这个值在action2传给action3的过程中修改一下,修改成action3可以可以接受的值才行。
所以就提出了这个问题!
谢谢你帮忙解答啊
1、将每个action中cases都以不同的命名(这个用了,会感觉很乱)2、在action用new forward(“。。”,true)实现,(这个是我知道的比较好的解决方法,但问题也是比较明显的)3、干脆不要加cases变量了(这个用了,只能给自己找更大的麻烦)4、添加一个过滤器,在action2转到action3之前调用一下
我想的是:
在xx-config.xml中配置如下
<action type=""
scope="request" parameter="method" path="/action2">
<forward name="action3" path="/action3" />
</action>
<action type=""
scope="request" parameter="method" path="/action3">
</action>
action2的代码包含:
String id = request.getParameter("id");
String cases = request.getParameter("cases");
//对cases处理完后,给cases赋于action3需要的值或者直接给个cases3值
String cases3 = .....//代码省略
request.setAttribute("id", id);
request.setAttribute("cases",cases3);
mapping.findForward("action3"); action3的代码包含:
String id = (String)request.getAttribute("id");
String cases = request.getParameter("cases");
if((cases == null)||(cases.equals("")))
cases = (String)request.getAttribute("cases");
这样就可以 得到 cases的值了。if的作用是便于楼主说的每个action都有cases变量的重用,其实如要要严谨的话,应该加上个if从url取不着值时,就从属性里取。