Liferay 6.1 内の Spring MVC ポートレットに対してフレンドリーな URL マッピングを機能させようとしていますが、失敗します。
への私の追加は、liferay-portlet-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>
friendly-url-routes.xml
存在とともに
<!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>
私のSpring 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";
}
}
/baseurl/-/search/bar
レンダリング フェーズの出力のみを使用してポートレットを呼び出した場合、アクション メソッドは呼び出されません。
を使用してこのページへのリンクを作成した場合
<portlet:actionURL var="lastStepUrl">
<portlet:param name="foo" value="bar" />
</portlet:actionURL>
Liferay が生成する URL は のようになり/baseurl/-/search/bar?p_auth=sometoken&p_p_lifecycle=1
ます。アクション フェーズを正しく実行し、その URL を直接呼び出すこともできます。ただし、削除したいパラメータp_auth
とパラメータが含まれています。p_p_lifecycle
どんな提案でも大歓迎です。