0

私は、サーブレットおよびポートレットとして実行する必要があるSpringMVCを使用してアプリケーションを作成しています。これはSpring3(JSR-286)で行うのはかなり簡単ですが、ポートレット1.0仕様(JSR-168)を使用する必要があります。互換性を持たせるために、Spring MVCを2.5にダウングレードしました(詳細はこちら)。

サーブレット/ポートレット互換のURLを生成できないことを期待して、すべてが正常に機能します。

Spring 3を使用して、次のように記述します。

<spring:url value="/foo">
  <spring:param name="action" value="foo"/>
</spring>

Spring 2.5には、spring:urlタグはありません。試してみましc:urlたが、サーブレット互換のURLのみが生成されます(ポートレットではありません)。

サーブレット/ポートレット互換のURL生成を実現するにはどうすればよいですか?

4

1 に答える 1

1

以下の解決策についてはよくわかりませんが、おそらく役立つでしょう。

ポートレット互換のURLにポートレットタグを使用できます。

<%@ taglib uri=”http://java.sun.com/portlet” prefix=”portlet” %>
...
<portlet:actionURL ... >
    <portlet:param name="action" value="foo">
</portlet:actionURL> 

(このタグの詳細については、 Java Portlet 1.0仕様(JSR-168)の「ポートレットタグライブラリ」の章を参照することをお勧めします)

次に、ポートレットまたはサーブレットのURLを生成するために、現在ポートレットまたはサーブレットを使用しているかどうかを検出する条件を使用できます(それが可能かどうかはわかりません)。

<c:choose>
    <c:when test="usingPortlet">
        <portlet:actionURL ... > ... </portlet:actionURL>
    </c:when>
    <c:otherwise>
        <c:url ... > ... </c:url>
    </c:otherwise> 
<c:choose>
于 2012-10-28T12:23:46.377 に答える