分享

webwork参数传递心得

 Joshua 2006-01-25

使用了webwork也有3个月了吧.对它的功能也掌握了一些,对它的感觉还是蛮好的,今天我说说,最近出开发时碰到的一个小问题,不过我现在已解决了,我现在就写出来.希望对大家有帮助.

我想大家都会碰到这样一个问题.

如webwork.xml配置文件

<action name=a class="com.text.A">

   <result name="success" type="dispathcer"></result>

    <param name="location">b.action</param>

  </result>

.........

如果,当执行完a.action后,接下来,转发到b.action但是b.action必须要一个参数,才能正常执行.所以,在a.action中,我们必须设置一个参数,然后让b.action来接受.但是在a.action中设置参数用二种情况.1.在b.action想要的参数,恰好a.action中通网页已设定了,例如在a.jsp中<input name="productId" type="text">在a.aciton中有,

public void setProductId(String productId){

   this.productId = productId;

}

这种情况,我们,可以直接在b.action写一方法也是

public void setProductId(String productId){

   this.productId = productId;

}

同a.action一样的,这样,就可以把a.action的想要的参数传过来了.

2.稍微难搞一点,不过也有解决的办法.当想要传递的参数,并没有从a.jsp传到a.action

我们通过这样的方法

private String param = null;

param = "test";

public String getParam(){

  return this.param

}

而在b.action

private String param = null;

public void setParam(String param){

   this.param = param;

}

我原以为这样可行的,可是,这样做不行啊,看来,(具体原因,我还不太清楚的,)

以后我用这种方法解决的,

在a.action中

我ActionContext ctx = ActionContext.getContext();

Map httpSession = ctx.getSession();

httpSession.put("param","test");

然后在b.action中

我ActionContext ctx = ActionContext.getContext();

Map httpSession = ctx.getSession();

String param = (String)httpSession.get("param");

httpSesson.remove(param);//这个session没有利用价值了,最好删掉它

这样做,也能把它传过来.不过我觉得解决方法不是很好.如有谁有好的解决办法,请赐教.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多