请教拦截器问题

问题描述

我要写个Interceptor,目的是让输入的值改变,比如:在jsp中,<form action="***!**.action"><input type="text" name ="biaoti" value="biaoti1111"><input type="submit"></form>在传到action之前,我要把“biaoti”到值“biaoti1111” 改成 “biaoti2222”在action直接取biaoti值就得到“biaoti2222” 请问。我在拦截器中该咋写啊???我写的是String ss=request.getParameter("biaoti");但request没有setParameter()方法啊?我还有别的办法吗,难道我只有去action中把得到的值改一般?那样工作量太大了,我写了N个action,都需要此操作!!天啊!!

解决方案

package interceptor;import action.EAction;import com.opensymphony.xwork.Action;import com.opensymphony.xwork.ActionInvocation;import com.opensymphony.xwork.interceptor.AroundInterceptor;public class ConvertInterceptor extends AroundInterceptor { public String intercept(ActionInvocation invocation) throws Exception { before(invocation); String result = invocation.invoke(); after(invocation, result); return result; } protected void after(ActionInvocation actionInvocation, String s) throws Exception { } protected void before(ActionInvocation actionInvocation) throws Exception { Action action = actionInvocation.getAction(); if(action instanceof EAction) { EAction eAction = (EAction) action; eAction.setParam("hello, world");//你要修改的参数名称 } }}假如说下面就是你要修改的Actionpackage action;import com.opensymphony.xwork.ActionSupport;public class EAction extends ActionSupport { public String execute() throws Exception { System.out.println("param = " + param); return SUCCESS; } public String getParam() { return param; } public void setParam(String param) { this.param = param; } private String param;}另外,把这个interceptor放到你的所有的interceptor之后就可以了,例如<interceptors> <interceptor name="convertInterceptor" class="interceptor.ConvertInterceptor"/> <interceptor-stack name="myStack"> <interceptor-ref name="completeStack"/> <interceptor-ref name="convertInterceptor"/> </interceptor-stack></interceptors><default-interceptor-ref name="myStack"/>

时间: 2024-11-03 02:34:00

请教拦截器问题的相关文章

如何在struts拦截器里面屏蔽所有页面鼠标右键?

问题描述 如何在struts拦截器里面屏蔽所有页面鼠标右键? 需求:就是想屏蔽全部页面鼠标右键,单一一两个页面,可以通过 function document.oncontextmenu(){ return false; } 来实现,但如果整个工程里面全部页面都一一添加,这有点不科学,也不现实. 请教:如何在拦截器里面统一处理?在返回到具体页面前拦截所有页面,添加上述代码来实现.其他实现方法如有效也行.请详细说明,谢谢各位大家指点. 解决方案 你整个通用文件include进去不就好了..

配置-求助,SSH整合后拦截器不起作用

问题描述 求助,SSH整合后拦截器不起作用 struts.xml配置如下 <interceptors> <interceptor name="loginInterceptor" class="com.music.interceptor.LoginInterceptor"></interceptor> <interceptor-stack name="globalInterceptor"> <i

Flume-NG源码阅读:SourceRunner及选择器selector和拦截器interceptor的执行

在AbstractConfigurationProvider类中loadSources方法会将所有的source进行封装成SourceRunner放到了Map<String, SourceRunner> sourceRunnerMap之中.相关代码如下: Map<String, String> selectorConfig = context.getSubProperties( BasicConfigurationConstants.CONFIG_SOURCE_CHANNELSEL

eclipse + JBoss 5 + EJB3开发指南(15):拦截器方法和拦截器类

一.拦截器方法 EJB3可以通过拦截器对Bean方法进行拦截和覆盖.这有些象AOP中的around.通过AOP的around方法, 可以修改被拦截方法的返回值.参数值,甚至可以取消被拦截方法的执行.EJB3的拦截器可以用在无状态 Session Bean.有状态Session Bean和消息驱动Bean(MDB)的方法中.实现拦截器的最简单的方法是使 用拦截器方法.也就是说,只要在当前的Bean中使用@AroundInvoke对某个方法进行注释(关于拦截器的 类都在javax.intercept

Struts2教程9:实现自已的拦截器

在上一篇中介绍了Struts2拦截器的原理,在这一篇中我们将学习一下如何编写自己的拦截器. 一.拦截器的实现 实现一个拦截器非常简单.实际上,一个拦截器就是一个普通的类,只是这个类必须实现com.opensymphony.xwork2.interceptor.Interceptor接口.Interceptor接口有如下三个方法: public interface Interceptor extends Serializable { void destroy(); void init(); Str

Struts2教程8:拦截器概述

Struts2的拦截器和Servlet过滤器类似.在执行Action的execute方法之前,Struts2会首先执行在struts.xml中引用的拦截器,在执行完所有引用的拦截器的intercept方法后,会执行Action的execute方法. Struts2拦截器类必须从com.opensymphony.xwork2.interceptor.Interceptor接口继承,在Intercepter接口中有如下三个方法需要实现: void destroy(); void init(); St

Struts 2的基石——拦截器(Interceptor)

如果大家希望快速开发,一个类似Struts 2这样的简单方便的WEB框架必不可少.我们在开发DEMO使用的还是Struts 1.2.8,而且没有不使用任何EL(表达式语言),导致页面出现无数类似"<%= ((Integer) request.getAttribute("xx")).intValue()%6 %>"的代码.Struts 1.x的Form Bean的麻烦使得有部分同事直接使用request.getParameter(String arg),继

ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第六篇:拦截器

摘要 本文将对"MVC公告发布系统"的发布公告功能添加日志功能和异常处理功能,借此来讨论ASP.NET MVC中拦截器的使用方法. 一个小难题 我们继续完善"MVC公告发布系统",这次,我们的需求是对公告发布功能添加日志记录能力,即在发布公告前,记录一次,在 公告发布成功后,再记录一次.然后还要使得其具备异常处理,即当业务组件出现问题时,跳转到相应的错误页面并显示相应提示. 有 人可能笑了,这有什么难的,在DoRelease这个Action的开始和结束处各加入相应日

Spring源代码解析(七):Spring AOP中对拦截器调用的实现

前面我们分析了Spring AOP实现中得到Proxy对象的过程,下面我们看看在Spring AOP 中拦截器链是怎样被调用的,也就是Proxy模式是怎样起作用的,或者说Spring是怎样为 我们提供AOP功能的: 在JdkDynamicAopProxy中生成Proxy对象的时候: Java代码 return Proxy.newProxyInstance(classLoader, proxiedInterfaces, this); 这里的this参数对应的是InvocationHandler对象