0

( )を使っGateIn 3.2.0.FINALています。のパラメータが無視されているようです。Tomcat 7GateIn-3.2.0.Final-tomcat7.zipactionURL

私のコントローラーは次のようになります。

@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>

送信ボタンを押すと、POST に が含まれているはずですが、含まれjavax.portlet.action=saveていません。指定されたパラメーターjavax.portlet.actionは含まれず、一致する@ActionMappingメソッドが見つからないため、例外がスローされます。

HTMLのタグ用に生成された URL はform次のようになります。

/portal/classic/home/Permissions?navigationalstate=<gibberish>&amp;portal:componentId=<an UUID>&amp;interactionstate=<gibberish>&amp;portal:type=action&amp;portal:isSecure=false

Firebug を使用して URL を手動で編集して追加&javax.portlet.action=saveすると、魅力的に機能save()し、コントローラーでメソッドが見つかります。

これで、まったく同じものを にデプロイするとwarjBoss Portal 2.7.2URL&javax.portlet.action=saveに含まれます。GateIn 3.1.0.FINALwithについても同様です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.FINALTomcat 6

編集

これを行うとうまくいくことを忘れていましたが、使用しないことをお勧めします。

<form:form id="${ns}-save" action="${saveURL}&javax.portlet.action=save" modelAttribute="createModel">
   <!-- omitted -->
</form:form>
4

2 に答える 2

1

これを試して

ActionMapping({params = "action=save"})
public void save(ActionRequest request) { 
    LOG.info("doing save"); 
}

<portlet:actionURL var="saveURL" escapeXml="false">
    <portlet:param name="action" value="save"/>
</portlet:actionURL>

action はデフォルトのパラメーター名であり、独自のものを使用するには他の変更を行う必要があります。

于 2012-06-28T08:31:55.063 に答える
0

escapeXML="false"actionURL で設定してみてください。

于 2012-05-30T08:23:48.170 に答える