I would like to define same friendly url for render and action method in liferay.
in Friendly-url.xml is
<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>
Difference is only in p_p_lifecycle.
In jsp is form:
<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>
and in controller I have 2 methods:
@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)
When I submit form, action method is not called. But when I change pattern for action method, e.g
<pattern>/createX/{parent}</pattern>
everything works
in Liferay can not have action method and render method same pattern? Or I have bug somewhere?