majiayichuan 2008-09-05 09:49
浏览 153
已采纳

请教拦截器问题

我要写个Interceptor,目的是让输入的值改变,比如:在jsp中,

在传到action之前,我要把“biaoti”到值“biaoti1111” 改成 “biaoti2222”
在action直接取biaoti值就得到“biaoti2222” 请问。我在拦截器中该咋写啊???

我写的是String ss=request.getParameter("biaoti");
但request没有setParameter()方法啊?
我还有别的办法吗,难道我只有去action中把得到的值改一般?那样工作量太大了,我写了N个action,都需要此操作!!天啊!!

  • 写回答

1条回答 默认 最新

  • xuxiaolei 2008-09-06 12:08
    关注

    [code="java"]
    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");  //你要修改的参数名称
         }
    
    }
    

    }
    [/code]
    假如说下面就是你要修改的Action
    [code="java"]
    package 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;
    

    }
    [/code]

    另外,把这个interceptor放到你的所有的interceptor之后就可以了,例如
    [code="xml"]

            <interceptor-stack name="myStack">
                <interceptor-ref name="completeStack"/>
                <interceptor-ref name="convertInterceptor"/>
             </interceptor-stack>
    


    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题