私が思いつく 3 つのアイデアを次に示します (コントローラーの呼び出し方法を知っておくと役立ちます)。それらの 1 つまたは組み合わせを試して、うまくいったかどうか教えてください。
アイデア 1 :("VIEW")
showDetails @RequestMapping アノテーションを削除します。
...
public class DetailsController {
@RequestMapping
public String showDetails(final ModelMap modelMap, final RenderRequest renderRequest) {
return "allDetails/details";
}
}
これは、呼び出し元の JSP に次のようなものがある場合に機能します: <portlet:actionURL/>
: showDetails がデフォルトのレンダリング メソッドになります。
アイデア 2 : @RequestMapping メソッド アノテーションのアクション パラメーターを指定します。
...
public class DetailsController {
@RequestMapping(params = "action=viewDetails")
public String showDetails(final ModelMap modelMap, final RenderRequest renderRequest) {
...
}
}
これは、呼び出し元の JSP に次のようなものがある場合に機能します。
<portlet:actionURL ... >
<portlet:param name="action" value="viewDetails">
</portlet:actionURL>
アイデア 3 :アクション フェーズに空のメソッドを追加します。
...
public class DetailsController {
@RequestMapping(params = "action=viewDetails") // render phase
public String showDetails(final ModelMap modelMap, final RenderRequest renderRequest) {
...
}
...
// Empty method
@RequestMapping(params = "action=viewDetails") // action phase
public void actionMethod() {
}
}
これは、呼び出し元の JSP に次のようなものがある場合に機能します。
<portlet:actionURL ... >
<portlet:param name="action" value="viewDetails">
</portlet:actionURL>