Java Liferay操作和呈现方法的相同友好url

Java Liferay操作和呈现方法的相同友好url,java,liferay,friendly-url,Java,Liferay,Friendly Url,我想为liferay中的render和action方法定义相同的友好url 在Friendly-url.xml中 <route> <pattern>/create/{parent}</pattern> <generated-parameter name="parent">{parent}</generated-parameter> <implicit-parameter name="p_p_lifecycl

我想为liferay中的render和action方法定义相同的友好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>
当我提交表单时,不会调用action方法。 但当我改变动作方法的模式时,例如

<pattern>/createX/{parent}</pattern>
/createX/{parent}
一切正常

在Liferay中不能有动作方法和渲染方法相同的模式?或者我在某个地方有bug?

portlet操作和呈现是两个不同的生命周期。你不能有一个(相同的)URL为两个,因为你正确的经验。门户如何知道您只想呈现或执行一个动作

使用友好的URL,您可以从模式映射到实际的URL,因此模式必须是唯一的

@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)
<pattern>/createX/{parent}</pattern>