这是我可以提出的 3 个想法(知道如何调用控制器会有所帮助)。尝试其中一种或混合使用,然后告诉我它是否有效。
想法 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>