blu*_*sky 6 java spring portlet spring-mvc
我试图解决为什么抛出以下异常.
我认为这是因为在"查看"模式下访问了一个portlet,但由于某种原因我不知道spring servlet容器无法提供请求,这是正确的吗?
以下例外集中的"参数映射"在哪里?
org.springframework.web.portlet.NoHandlerFoundException:没有为portlet请求找到匹配的处理程序方法:mode'view',phase'ACT__PASE',参数map [empty]
这是控制器:
@Controller
@RequestMapping("VIEW")
public class DetailsController {
@RequestMapping("VIEW")
public String showDetails(final ModelMap modelMap, final RenderRequest renderRequest) {
return "allDetails/details";
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我可以提出的3个想法(知道你的控制器如何调用会有所帮助).尝试其中一个,或混合使用它们,并告诉我它是否有效.
想法1:删除("VIEW")showDetails @RequestMapping注释.
...
public class DetailsController {
@RequestMapping
public String showDetails(final ModelMap modelMap, final RenderRequest renderRequest) {
return "allDetails/details";
}
}
Run Code Online (Sandbox Code Playgroud)
如果你的调用JSP有这样的东西,这可能会起作用<portlet:actionURL/>:: showDetails将是默认的渲染方法.
想法2:为@RequestMapping方法注释指定action参数.
...
public class DetailsController {
@RequestMapping(params = "action=viewDetails")
public String showDetails(final ModelMap modelMap, final RenderRequest renderRequest) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
如果你的调用JSP有这样的东西,这可能会起作用:
<portlet:actionURL ... >
<portlet:param name="action" value="viewDetails">
</portlet:actionURL>
Run Code Online (Sandbox Code Playgroud)
想法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() {
}
}
Run Code Online (Sandbox Code Playgroud)
如果你的调用JSP有这样的东西,这可能会起作用:
<portlet:actionURL ... >
<portlet:param name="action" value="viewDetails">
</portlet:actionURL>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6773 次 |
| 最近记录: |