我试图弄清楚为什么抛出下面的异常。
我认为这是因为在“ View ”模式下访问了portlet,但是由于某种原因,我不知道spring servlet容器无法满足请求,这是正确的吗?
下面的异常集中的“参数图”在哪里?
这是 Controller :
@Controller
@RequestMapping("VIEW")
public class DetailsController {
@RequestMapping("VIEW")
public String showDetails(final ModelMap modelMap, final RenderRequest renderRequest) {
return "allDetails/details";
}
}
最佳答案
这是我可以提出的3个想法(知道如何调用 Controller 将有所帮助)。
尝试其中一种或多种,然后告诉我是否可行。
想法1:删除showDetails @RequestMapping批注的("VIEW")
。
...
public class DetailsController {
@RequestMapping
public String showDetails(final ModelMap modelMap, final RenderRequest renderRequest) {
return "allDetails/details";
}
}
如果调用的JSP具有以下内容,则此方法可能有效:
<portlet:actionURL/>
:showDetails将是默认的render方法。想法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>