【发布时间】:2026-02-08 04:00:02
【问题描述】:
一个在 LifeRay 6.0 和 Open Portlet Container 中正常运行的简单 portlet,但是当我部署到 Liferay 6.2 时,它在操作映射时中断。我在调试时发现了这两个问题。 1)表单数据在操作方法中不可用(未填充) 2) 无法使用 setRenderParameter 进入带参数的渲染方法
提前感谢任何帮助。
代码示例如下 - 不包括第二个选项(即 setRenderParamer)
<portlet:defineObjects/>
<portlet:actionURL var="doFormActionURL">
<portlet:param name="action" value="doFormAction" />
</portlet:actionURL>
<form:form name="form" modelAttribute="someObject" method="post" action="${doFormActionURL}" htmlEscape="false" >
<table>
<tr>
<td><form:input path="id" /></td>
</tr>
<tr>
<td><form:input path="name" /></td>
</tr>
</table>
<input type="submit" value="Just do it" />
</form:form>
在控制器中
@Controller
@RequestMapping("VIEW")
public class ControllerMain
{
@RenderMapping
public String setModelAndView(PortletRequest request, Model model) {
model.addAttribute("someObject", new SomeObject());
return "home";
}
@ActionMapping(params = "action=doFormAction")
public void doFormAction(@ModelAttribute ("someObject") SomeObject someObject, ActionRequest request) {
String strname = request.getParameter("name");
System.out.println("someObject : "+someObject.toString());
System.out.println("name : "+strname);
}
上下文
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- property name="cache" value="true" /-->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="requestContextAttribute"><value>rc</value></property>
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
输出:
一些对象:0 无效的 无效的 名称:空
有人在 liferay 6.2 上尝试过 spring 吗?请分享您的经验
【问题讨论】:
-
你是如何让这个 portlet 兼容 6.2 版本的?
-
嗨Pankaj,感谢您的回复,正在开发中.. 1)liferay(6.0和6.2)配置了liferay-eclipse ide,因此在部署时配置了直接部署2)导出战争,日食提供选项('优化服务器运行时')我提供liferay 6.0 / 6.2选项(预配置)
-
渲染没有问题,但实际操作中问题仍然存在
标签: spring-mvc portlet liferay-6