使用了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没有利用价值了,最好删掉它 这样做,也能把它传过来.不过我觉得解决方法不是很好.如有谁有好的解决办法,请赐教. |
|