一個在Liferay 6.0和Open Portlet Container上正常運行的簡單portlet,但是當我部署到Liferay 6.2時,它會在操作映射中中斷。我在調試中發現了兩個問題。 1)在操作方法 上無法使用表單數據(未填充)2)無法使用setRenderParameter參數呈現方法簡單的Spring Portlet不能在Liferay的Action映射中工作6.2
請提前感謝您的幫助。
代碼示例如下: - 不包括在控制器
@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>
輸出的第二選項(即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>
:
someOb JECT:0 空 空 名:空
是否有任何人嘗試的Liferay 6.2春天。請分享您的經驗
你是如何做出這個portlet到6.2版本兼容? –
嗨Pankaj,感謝您的迴應,正在開發中.. 1)liferay(包括6.0和6.2)都配置了liferay-eclipse IDE,因此在部署時配置了直接部署 2)導出war,eclipse提供了選項('優化服務器運行時')那裏我提供了liferay 6.0/6.2選項(預配置) – bhabesh
在渲染時沒有問題,但在實際操作中問題依然存在 – bhabesh