Liferay 6.1에서 Spring MVC 포틀릿에 대해 작동하도록 친숙한 URL 매핑을 얻으려고 시도하고있다. liferay-portlet-xml
에Liferay 6.1 + Spring MVC Portlet 4.0 : 친숙한 URL 매핑
내 추가 가능한 설명서와 블로그의 예에 따라하고 등은 다음과 같습니다되는 friendly-url-routes.xml
와
<friendly-url-mapper-class>com.liferay.portal.kernel.portlet.DefaultFriendlyURLMapper</friendly-url-mapper-class>
<friendly-url-mapping>search</friendly-url-mapping>
<friendly-url-routes>com/.../friendly-url-routes.xml</friendly-url-routes>
<!DOCTYPE routes PUBLIC "-//Liferay//DTD Friendly URL Routes 6.1.0//EN"
"http://www.liferay.com/dtd/liferay-friendly-url-routes_6_1_0.dtd">
<routes>
<route>
<pattern>/{match}</pattern>
<generated-parameter name="foo">{match}</generated-parameter>
</route>
</routes>
내 스프링 MVC 컨트롤러는
@Controller
@RequestMapping("VIEW")
public class CarModelController {
@ActionMapping
public void action(@RequestParam("foo") final String testParam,
final ActionRequest request, final ActionResponse response) {
this.logger.info("default action");
this.logger.info("testParam = {}", testParam);
}
@RenderMapping
public String render(final RenderRequest request, final RenderResponse response) {
this.logger.info("default render");
return "index";
}
}
처럼 간다
0123을 사용하여 내 포틀릿에 전화하면렌더링 단계 출력 만 발생하면 작업 메서드가 호출되지 않습니다.
내가
<portlet:actionURL var="lastStepUrl">
<portlet:param name="foo" value="bar" />
</portlet:actionURL>
을 Liferay가 /baseurl/-/search/bar?p_auth=sometoken&p_p_lifecycle=1
같은 모양을 생성하는 URL을 사용하여이 페이지에 대한 링크를 작성하는 경우. 액션 단계를 올바르게 실행하고 해당 URL을 직접 호출 할 수 있습니다. 그러나 제거하려는 매개 변수는 p_auth
및 p_p_lifecycle
입니다.
모든 제안은 따뜻하게 환영합니다.
Liferay는 모르지만 POST/GET에서 'portlet : actionUrl'이 Chrome의 개발 도구 또는 FireFox와 같은 것을 사용하여 직접 호출 할 때 발생하는 상황에 따라 생성된다는 것을보고 시작합니다. 방화범. 그런 다음 컬 (curl) 한 무언가를 사용할 수 있습니다. 작동하는 요청의 정확한 사본으로 시작한 다음 작동을 멈출 때까지 제거를 시작하십시오. 이는 하나의 요청이 트리거되도록하고 다른 요청은 트리거하지 않도록 식별합니다. 찾을 내용 : HTTP 요청 유형 (POST/GET/etc.), 전송중인 헤더, POST/GET 변수 전송 중 등. – CodeChimp