2014-02-06 52 views
3

我想在我的jsp中有2個提交按鈕,所以我找到了這個教程:http://struts.apache.org/release/2.3.x/docs/multiple-submit-buttons.html 我想用MyBaseAction類開發Nyong Nyong的解決方案,通過MySubmitAction和MyClearAction類進行擴展。但我無法得到它的工作。 我不知道jsp中怎麼會,這是在例如:Struts2:多個提交按鈕

<s:form method="post" action="mySubmitAction"> 
    <s:submit value="Submit"/> 
    <s:submit value="Clear" action="myClearAction"/> 
</form> 

但我想,它的簡稱前面的例子。 我不太清楚struts.xml,我需要設置一些特定的常量值或其他的東西嗎?

如果有人能夠提供完整的jsp和struts.xml示例,那將會很棒。

回答

11

如果您使用的支柱在版本更新 2.3.15.2,你必須添加此常量的struts.xml使action:前綴:

<constant name="struts.mapper.action.prefix.enabled" value="true" /> 

,因爲它已被禁用默認。

閱讀更多關於安全公告S2-018

+1

我失去了一天,你是我的英雄! :D – Accollativo

+0

很高興幫助;) –

1

您需要將操作的「名稱」映射到您創建的實際操作類。如果效仿,並有類似的struts.xml文件:

<action name="mySubmitAction" class="MySubmitAction"> 
     <result>submit.jsp</result> 
</action> 
<action name="myClearAction" class="MyClearAction"> 
     <result>submit.jsp</result> 
</action> 

當你點擊通過<s:submit value="Submit"/> Struts2的產生將在您的MySubmitAction執行你execute方法的輸入。當你點擊由<s:submit value="Clear" action="myClearAction"/>生成的輸入時,struts2應該覆蓋s:form標記(我沒有測試過)指定的默認操作,並將在您的MyClearAction中執行execute方法。

+0

是的,我知道。這是指南中的內容。但我嘗試過,並沒有工作。 jsp如何? 我需要在struts.xml中添加一些常數值或其他內容 – Accollativo

+0

你是什麼意思「不起作用」?有什麼異常?第二個按鈕執行'mySubmitAction'? – orique