使用了webwork也有3個月了吧.對它的功能也掌握了一些,對它的感覺還是蠻好的,今天我說說,最近出開發(fā)時碰到的一個小問題,不過我現(xiàn)在已解決了,我現(xiàn)在就寫出來.希望對大家有幫助.
我想大家都會碰到這樣一個問題.
如webwork.xml配置文件
<action name=a class="com.text.A">
<result name="success" type="dispathcer"></result>
<param name="location">b.action</param>
</result>
.........
如果,當(dāng)執(zhí)行完a.action后,接下來,轉(zhuǎn)發(fā)到b.action但是b.action必須要一個參數(shù),才能正常執(zhí)行.所以,在a.action中,我們必須設(shè)置一個參數(shù),然后讓b.action來接受.但是在a.action中設(shè)置參數(shù)用二種情況.1.在b.action想要的參數(shù),恰好a.action中通網(wǎng)頁已設(shè)定了,例如在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的想要的參數(shù)傳過來了.
2.稍微難搞一點,不過也有解決的辦法.當(dāng)想要傳遞的參數(shù),并沒有從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沒有利用價值了,最好刪掉它
這樣做,也能把它傳過來.不過我覺得解決方法不是很好.如有誰有好的解決辦法,請賜教.