0

私は Spring MVC ポートレットを使用しています。外部のページネーションで 1 つの表示タグを実装する必要があります。これを行うために、JSP でテーブルを次のように定義しました。

    <portlet:actionURL var="viewListURL">
        <portlet:param name='action' value='${ServletContextKeys.MY_ACTION_METHOD}'/> 
    </portlet:actionURL>  
                <display:table name="${whateverList}"
                               requestURI="${viewListURL}"
                               class="displayTagTable"
                               export="true"
                               uid="item"
                               pagesize="10"
                               partialList="true"
                               sort="external"
                               defaultsort="1"                                  
                               size="${ServletContextKeys.SC_LIST_SIZE}">
     ...

問題は、ページネーションのために任意のボタンをクリックすると、displaytag が必要に応じてアクション フェーズではなくレンダリング フェーズにリダイレクトすることです。私は何を間違っていますか?何か案は..?どうもありがとう

編集: URL で、パラメーター p_p_url_type=0 (レンダリング フェーズ) を確認できます。アクション URL を呼び出しているので意味がありませんが、このパラメーターを p_p_url_type=1 に変更するだけで十分でしょう。でも、方法がわかりません...何かアイデアはありますか?

http://localhost:8080/wsdes/user/sifo3/home?p_p_id=SifoIIIweb_WAR_sifo3economicoweb_INSTANCE_s8jH&p_p_lifecycle=1&p_p_url_type=0&p_p_state=maximized&p_p_mode=view&_SifoIIIweb_WAR_sifo3economicoweb_INSTANCE_s8jH_action=consultaJustificantes&_SifoIIIweb_WAR_sifo3economicoweb_INSTANCE_s8jH_implicitModel=true&_SifoIIIweb_WAR_sifo3economicoweb_INSTANCE_s8jH_d-49489-p=2
4

2 に答える 2

0

以前にそこに行ったことがある。別の方法で問題を解決しましたが、DisplayTagソースコードを調べていると、興味深いことがいくつか見つかりました。たとえば、PortletHrefaddParameterでは、次のメソッドでこれを見つけることができます。

     if (PARAM_TYPE.equals(name))
        {
           if (TYPE_RENDER.equals(value))
           {
               this.setAction(false);
           }
           else if (TYPE_ACTION.equals(value))
           {
              this.setAction(true);
           }

そしてまた:

 private static final String PARAM_PREFIX = "portlet:";
 public static final String PARAM_TYPE = PARAM_PREFIX + "type";
 public static final String TYPE_ACTION = "action";

どうやら、 DisplayTagにアクションURLを生成させるためにportlet:type、valueで指定されたパラメーターが必要な場合。action私は自分自身をテストしていないので、それが機能するかどうか教えてください。

于 2013-01-15T20:02:01.237 に答える
0

理由はまだわかりませんが、ポートレットの表示タグ (displaytag-portlet.jar) を標準の displaytag に変更し、displaytag.properties ファイルから factory.requestHelper プロパティ: factory.requestHelper を削除して、この問題を修正しました。 =org.displaytag.portlet.PortletRequestHelperFactory

ポートレットの代わりに通常の displaytag ライブラリを使用すると、問題が解決しました。

于 2013-01-21T08:00:05.813 に答える