Java 使用Liferay、SpringMVC和@RequestMapping,我是否遗漏了什么?
我正在尝试将SpringMVC与Liferay集成,到目前为止,我取得了喜忧参半的成功,但这个特殊的问题让我发疯。我有一个非常粗糙的控制器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
@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" />
谢谢,伙计,你的链接给我指明了正确的方向。。。事实上,我现在觉得有点傻,我要发布一个答案说我做了什么…谢谢,哥们,你的链接为我指明了正确的方向。。。事实上,我现在觉得有点傻,我要发布一个答案说我做了什么。。。