Java 使用Liferay、SpringMVC和@RequestMapping,我是否遗漏了什么?

Java 使用Liferay、SpringMVC和@RequestMapping,我是否遗漏了什么?,java,jsp,spring-mvc,liferay,Java,Jsp,Spring Mvc,Liferay,我正在尝试将SpringMVC与Liferay集成,到目前为止,我取得了喜忧参半的成功,但这个特殊的问题让我发疯。我有一个非常粗糙的控制器 @Controller @RequestMapping(value = "VIEW") public class AppointmentsController { @RequestMapping public ModelAndView showAppointments(RenderRequest request, R

我正在尝试将SpringMVC与Liferay集成,到目前为止,我取得了喜忧参半的成功,但这个特殊的问题让我发疯。我有一个非常粗糙的控制器

    @Controller
    @RequestMapping(value = "VIEW")
    public class AppointmentsController {

    @RequestMapping
    public ModelAndView showAppointments(RenderRequest request, RenderResponse response) {
        return new ModelAndView("view");
    }

    @RequestMapping(params={"action=addAppointment"}) // render phase
    public String showAddAppointmentsForm(Model model) {
        //return new ModelAndView("add_appointment");
        System.out.println("TEST");
        return "add_appointment";
    }

}
第一个映射可以很好地工作,该控制器负责的portlet可以完美地呈现。在包含portlet视图的jsp文件中,我有

<aui:button-row>

    <portlet:actionURL var="addAppointmentURL">
        <portlet:param name="action" value="addAppointment" />
    </portlet:actionURL>

    <aui:button onClick="${addAppointmentURL}" value="Add New Appointment" />
    <aui:button type="button" value="Appointment History" />

</aui:button-row>
现在的问题是,当我单击AddNewAppointment按钮时,控制器中的ShowAddAppointsForm不会处理操作请求,而是会处理操作请求

org.springframework.web.portlet.NoHandlerFoundException: No matching handler method found for portlet request: mode 'view', p hase 'ACTION_PHASE', parameters map['action' -> array<String>['addAppointment']]
我已经尝试了很多东西,将portlet模式从视图更改为编辑-不起作用,将showaddAppointsForm方法的@RequestMapping更改为@ActionMapping-起作用,但它坚持装饰的方法应该是无效的,因为我无法返回我想要呈现的新jsp文件

我在这里引用了文档->但就我所见,我正在做同样的事情

我快发疯了,我错过什么了吗?

试试这个@ActionMappingparams=action=addAppointment

更多信息请点击此处

试试这个@ActionMappingparams=action=addAppointment


更多信息请点击这里

因此,在回答@Danish之后,我有点步入正轨,我所做的是:

@RenderMapping(params={"action=addAppointment"}) // render phase
public String showAddAppointmentsForm(Model model) {
    //return new ModelAndView("add_appointment");
    System.out.println("TEST");
    return "add_appointment";
}
请注意@RenderMapping anotation,而不是@RequestMapping或@ActionMapping

他认为:

<portlet:renderURL var="addAppointmentURL">
    <portlet:param name="action" value="addAppointment"></portlet:param>
</portlet:renderURL>

<aui:button onClick="${addAppointmentURL}" value="Add New Appointment" />

所以,在回答了@Danish之后,我有点走上了正轨,我所做的是:

@RenderMapping(params={"action=addAppointment"}) // render phase
public String showAddAppointmentsForm(Model model) {
    //return new ModelAndView("add_appointment");
    System.out.println("TEST");
    return "add_appointment";
}
请注意@RenderMapping anotation,而不是@RequestMapping或@ActionMapping

他认为:

<portlet:renderURL var="addAppointmentURL">
    <portlet:param name="action" value="addAppointment"></portlet:param>
</portlet:renderURL>

<aui:button onClick="${addAppointmentURL}" value="Add New Appointment" />

谢谢,伙计,你的链接给我指明了正确的方向。。。事实上,我现在觉得有点傻,我要发布一个答案说我做了什么…谢谢,哥们,你的链接为我指明了正确的方向。。。事实上,我现在觉得有点傻,我要发布一个答案说我做了什么。。。