2014-06-05 3 views
0

나는 liferay에서 렌더링 및 액션 메소드와 동일한 친숙한 URL을 정의하고 싶습니다. 친절한-url.xml에서Liferay 작업 및 렌더링 방법과 동일한 친숙한 URL

<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에서입니다.

@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) 

내가 양식을 제출

, 액션 메소드가 호출되지 않은 : 나는이 개 방법이
<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> 

및 컨트롤러

: JSP에서

는 형태입니다. 하지만 액션 메소드에 대한 패턴을 변경할 때, 예컨대

<pattern>/createX/{parent}</pattern> 

모든 액션 메소드를 가지고 및 방법 같은 패턴을 렌더링 할 수있는 Liferay에

작동? 아니면 어딘가에 버그가 있습니까?

답변

0

포틀릿 동작렌더링은 서로 다른 두 가지 수명주기입니다. 올바르게 경험할 때 둘 모두에 하나의 (동일한) URL을 사용할 수 없습니다. 포털은 렌더링을 수행하고 실행 만하려는 경우 포탈에서 어떻게 알 수 있습니까?

친숙한 URL을 사용하면 패턴에서 실제 URL로 매핑되므로 패턴이 고유해야합니다.