-1

こんにちは、liferay で MVCPortlet を構築しています。renderURL を使用して他の 2 つの jsp ページを指す view.jsp を使用していますが、2 つのリンクのいずれかをクリックするたびに、Eclipse コンソールで例外が発生します。

これがポートレットのview.jspのコードです

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>

<portlet:defineObjects />

<!--<jsp:include page="addNewWebSite.jsp" /> -->

<portlet:renderURL var="addNewWebSite">
    <portlet:param name="jspPage" value="/addNewWebSite.jsp"/>
</portlet:renderURL>
<portlet:renderURL var="listWebSites">
    <portlet:param name="jspPage" value="/listWebSites.jsp"/>
</portlet:renderURL>
<ul>
<li><a href="<%=addNewWebSite%>">Add new web site</a></li>
<li><a href="<%=listWebSites %>">List Web Site</a></li>
</ul>

ポートレット プロジェクトの同じディレクトリにある addNewSite.jsp と listWebSites.jsp の 2 つのファイルもあります。

ここにスタックトレースがあります。

Caused by: javax.servlet.ServletException: Le fichier &quot;/addNewWebSite.jsp&quot; n'a pas été trouvé
    at org.apache.jasper.servlet.JspServlet.handleMissingResource(JspServlet.java:412)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
    at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:96)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:605)
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:544)
    at com.liferay.portlet.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:331)
    at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:112)
    ... 167 more
14:18:29,497 ERROR [http-bio-8080-exec-25][render_portlet_jsp:132] null
4

2 に答える 2

1

Nwawel、問題は<portlet:param>タグで発生すると思います。

MVCPortlet で、JSP ページを別の JSP ページから直接呼び出す場合は、portlet:param の名前に「mvcPath」という名前を付ける必要があります。たとえば、次のようにします。

<portlet:renderURL var="varA">
    <portlet:param name="mvcPath" value="/a.jsp"/>
</portlet:renderURL>

<portlet:renderURL var="varB">
    <portlet:param name="mvcPath" value="/b.jsp"/>
</portlet:renderURL>

<a href="<%=varA %>">Link to A</a>
<a href="<%=varB %>">Link to B</a>

これはうまくいきます。

これがあなたを助けることを願っています。

于 2016-04-03T13:50:00.820 に答える
0

renderURL で を呼び出してaddNewWebSite.jspいますが、ファイルには名前が付けられています。addNewSite.jsp 例外はaddNewWebSite.jsp存在しないことを示しています。

いずれかの名前を調整してから、再試行してください。

「/addNewWebSite.jsp」を指すrender-paramを設定しましたが、ファイルの名前は「addNewSite.jsp」であると言ったため、レンダリングは「addNewWebSite.jsp」を探していますが、できませんフォルダー内に「addNewSite.jsp」があるため、それを見つけます。

于 2014-10-27T11:24:24.547 に答える