1

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

どんな提案でも大歓迎です。

4

1 に答える 1