【发布时间】:2014-07-26 02:05:18
【问题描述】:
我想在 liferay 中为渲染和操作方法定义相同的友好 url。
在 Friendly-url.xml 中是
<route>
<pattern>/create/{parent}</pattern>
<generated-parameter name="parent">{parent}</generated-parameter>
<implicit-parameter name="p_p_lifecycle">0</implicit-parameter>
<implicit-parameter name="p_p_state">normal</implicit-parameter>
<implicit-parameter name="p_p_mode">view</implicit-parameter>
<implicit-parameter name="action">create</implicit-parameter>
</route>
<route>
<pattern>/create/{parent}</pattern>
<generated-parameter name="parent">{parent}</generated-parameter>
<implicit-parameter name="p_p_lifecycle">1</implicit-parameter>
<implicit-parameter name="p_p_state">normal</implicit-parameter>
<implicit-parameter name="p_p_mode">view</implicit-parameter>
<implicit-parameter name="action">create</implicit-parameter>
</route>
差别只在 p_p_lifecycle。
在jsp中是表单:
<liferay-portlet:actionURL var="saveUrl">
<liferay-portlet:param name="action" value="create" />
<liferay-portlet:param name="parent" value="${parent}" />
</liferay-portlet:actionURL>
<form:form method="post" action="${saveUrl}" commandName="thesaurus" enctype="multipart/form-data">
...
</form>
在控制器中我有两种方法:
@RenderMapping(params = { "action=create" })
public String create(RenderRequest request, RenderResponse response, Model model, @RequestParam String parent)
@ActionMapping(params = { "action=create" })
public void create(ActionRequest request, ActionResponse response, @RequestParam String parent, @Valid Thesaurus thesaurus, BindingResult result)
当我提交表单时,没有调用 action 方法。 但是当我改变动作方法的模式时,例如
<pattern>/createX/{parent}</pattern>
一切正常
在Liferay 中不能有action 方法和render 方法相同的模式吗?还是我在某个地方有错误?
【问题讨论】:
标签: java liferay friendly-url