加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – NoHandlerFoundException集中的’参数映射’在哪里?

发布时间:2020-12-14 05:56:32 所属栏目:Java 来源:网络整理
导读:我试图解决为什么抛出以下异常. 我认为这是因为在“查看”模式下访问了一个portlet,但由于某种原因我不知道spring servlet容器无法提供请求,这是正确的吗? 以下例外集中的“参数映射”在哪里? org.springframework.web.portlet.NoHandlerFoundException: N
我试图解决为什么抛出以下异常.

我认为这是因为在“查看”模式下访问了一个portlet,但由于某种原因我不知道spring servlet容器无法提供请求,这是正确的吗?

以下例外集中的“参数映射”在哪里?

org.springframework.web.portlet.NoHandlerFoundException: No matching
handler method found for portlet request: mode ‘view’,phase
‘ACTION_PHASE’,parameters map[empty]

这是控制器:

@Controller
@RequestMapping("VIEW")
public class DetailsController {
    @RequestMapping("VIEW")
    public String showDetails(final ModelMap modelMap,final RenderRequest renderRequest) {
        return "allDetails/details";
    }
}

解决方法

以下是我可以提出的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方法注释指定action参数.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读