我正在使用GateIn 3.2.0.FINAL
和Tomcat 7
(GateIn-3.2.0.Final-tomcat7.zip
)。它看起來像actionURL
中的參數被忽略。GateIn 3.2忽略actionURL參數
我的控制器看起來是這樣的:
@ActionMapping("search")
public void search(ActionRequest request) {
LOG.info("doing search");
}
@ActionMapping("save")
public void save(ActionRequest request) {
LOG.info("doing save");
}
我的JSP是這樣的:
<portlet:actionURL var="saveURL">
<portlet:param name="javax.portlet.action" value="save"/>
</portlet:actionURL>
<form:form id="${ns}-save" action="${saveURL}" modelAttribute="createModel">
<!-- omitted some html -->
<input type="submit" value="submit"/>
</form:form>
當我按下提交按鈕,開機自檢應包括javax.portlet.action=save
,但事實並非如此。沒有包含名爲javax.portlet.action
的參數,並且拋出異常,因爲找不到匹配的@ActionMapping
方法。
在HTML中form
標記中生成的URL看起來是這樣的:
/portal/classic/home/Permissions?navigationalstate=<gibberish>&portal:componentId=<an UUID>&interactionstate=<gibberish>&portal:type=action&portal:isSecure=false
如果我手動編輯與螢火蟲的網址,並添加&javax.portlet.action=save
給它,它就像一個魅力和它發現save()
方法在控制器中。
現在,如果我在jBoss Portal 2.7.2
中部署了完全相同的war
,&javax.portlet.action=save
包含在URL中。 GateIn 3.1.0.FINAL
與Tomcat 6
也是如此。
PS
我也試着與其它參數鍵:
@ActionMapping({params = "myparam=save"})
public void save(ActionRequest request) {
LOG.info("doing save");
}
...和:
<portlet:actionURL var="saveURL">
<portlet:param name="myparam" value="save"/>
</portlet:actionURL>
...相同的結果。作品在GateIn 3.1
和jBoss Portal 2.7.2
找到,但不是GateIn 3.2
。它也不適用於GateIn 3.2.0.FINAL
與Tomcat 6
。
編輯
忘了提,做這個工作,但我不希望使用它:
<form:form id="${ns}-save" action="${saveURL}&javax.portlet.action=save" modelAttribute="createModel">
<!-- omitted -->
</form:form>
謝謝,但我已經試過了。仍然不起作用。 – Oscar
嘿奧斯卡你有沒有得到這個問題的解決方案,其實我也面臨着同樣的問題 – Shardendu