2016-08-12 26 views
0

我正在從struts 1遷移到struts 2框架。基於struts 1框架參數=方法屬性,我可以通過添加一個隱藏字段「方法」使用相同的jsp頁面執行不同的方法。Struts 2單個jsp頁面執行多種不同的方法

如何在struts 2中實現相同?

我的Action類:

public class MyAction extends ActionSupport { 
    public String methodA() { 
     return "a"; 
    } 

    public String methodB() { 
     return "b"; 
    } 
} 

我的JSP頁面

<s:form action="MyAction"> 
    <s:select label="Method Name" 
     name="method" 
     headerKey="-1" headerValue="Select Method" 
     list="#{'01':'A', '02':'B', [...]}" 
     value="selectedMethod" 
     required="true" 
    /> 
    <s:submit type="button" name="submit" /> 
</s:form> 

回答

1

你可以通過提交之前改變了 「動作」 URL實現這一目標。

退房通配符方法動態方法調用here

雖然,動態方法調用可以被認爲是一個Security Vulnerability

+0

改變使用JavaScript form.action? – youcanlearnanything

+0

@youcanlearnanything是的,就像「document.myform.action ='actionName_method.action'」,你可以在select的onChange方法中做到這一點。 (對不起,如果您希望得到您的案例的確切代碼 - 由於缺乏時間和資源,無法提供給您) – Plirkee

+0

我明白了。我想不出任何其他方式!我只是想知道是否有其他選擇。 – youcanlearnanything

相關問題