0

我正在使用 Spring MVC 编写一个应用程序,它必须作为servletportlet运行。这在 Spring 3 (JSR-286) 中很容易做到,但我必须使用 portlet 1.0 规范 (JSR-168)。为了与之兼容,我将 Spring MVC 降级为 2.5(更多信息在这里)。

一切正常,但我无法生成与 servlet/portlet 兼容的 URL!

使用 Spring 3,我会写:

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

在 Spring 2.5 中没有spring:url标签。我尝试过,c:url但它只生成与 servlet 兼容的 URL(不是 portlet)。

如何实现 servlet/portlet 兼容的 URL 生成?

4

1 回答 1

1

我不确定下面的解决方案,但也许它会有所帮助。

您可以将 portlet 标记用于与 portlet 兼容的 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) “Portlet Tag Library” 章节以了解有关此标记的详细信息)

然后,要生成 portlet 或 servlet url,您可以使用一个条件来检测您当前是否正在使用 Portlet 或 Servlet(我不知道是否可能):

<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 回答