2012-04-07 5 views
3

Ich arbeite an der Entwicklung des Portlets 6. Ich bin neu dazu. Ich muss einen Hyperlink zu einem anderen jsp wie gezeigt halten.Portlet: renderURL funktioniert nicht

<a href="<portlet:renderURL> 
    <portlet:param name="jspPage" value="/WEB-INF/view/page2.jsp" /> 
    </portlet:renderURL>"> 
</a> 

Ich habe eine andere JSP page2.jsp genannt, aber das funktioniert nicht (Mittel, wenn ich auf dem Hyper-Link klicken, es aain zeigt die erste JSP nur

Aber das funktioniert nicht

Das ist mein page1.jsp

<%@ taglib prefix="s" uri="/struts-tags" %> 

<s:form action="helloForm" method="POST" theme="simple"> 
    Enter Your Name:<s:textfield name="namer" value="%{name}" required="true"/> 
    <s:submit/> 
</s:form> 


<a href="<portlet:renderURL> 
<portlet:param name="jspPage" value="/WEB-INF/view/page2.jsp" /> 
</portlet:renderURL>"> 
</a> 

=========

Dies ist pag2.jsp

<html> 
<head> 
</head> 
<body> 
    <h1>Hi </h1> 
</body> 
</html> 
+0

können Sie die Methode 'doView()' des Portlets (oder eine Entsprechung in dem von Ihnen verwendeten Framework) posten? – soulcheck

+0

Nur ein kleiner Tipp: Ein Portlet jsp sollte nicht die Tags enthalten: 'html',' head' und 'body'. Alles, was wir in Portlet-JSPs schreiben, sollte ein Fragment innerhalb des 'body'-Tags sein und diese äußeren Tags werden vom Portal selbst verwaltet. Danke –

Antwort

4

Können Sie den folgenden Code in Ihr page1.jsp versuchen und sehen, ob es funktioniert:

<portlet:renderURL var="clickRenderURL"> 
    <portlet:param name="jspPage" value="/WEB-INF/view/page2.jsp" /> 
</portlet:renderURL> 

<a href="<%=clickRenderURL %>">Click here</a> 

Ist dies der Fall, als dies das Problem ist, sein kann, mit Anführungszeichen ("").

Wenn es nicht, dann können Sie weitere Informationen zur Verfügung stellen, wie der Portlet Sie MVCPortlet erstreckt, usw.

+2

Bitte benutze keine scritplet-Syntax im Jahr 2012, es ist fast immer besser, '$ {varname}' oder '' – soulcheck

+0

@soulcheck: Ich wollte meine Antwort bearbeiten enthalten auch eine EL-Version. Übrigens benutzt liveray Scriptlets viel, wenn Sie ihren Quellcode durchgegangen sind. Wie auch immer, danke für die Erwähnung. –

+0

Ich dachte, ich würde es für Anfänger nennen, die damit anfangen könnten, es überall im Leben zu sehen, usw. liveray tut es und es ist wirklich hässlich und nicht zu halten. Sie haben einige JSPs, in denen 99% des Inhalts Java ist (sie könnten die Datei tatsächlich umbenennen und sie würde fast kompilieren;)). Das ist einfach falsch, da es die Trennung zwischen View und Controller unterbricht. – soulcheck

0

Ich glaube, das Problem in dem Tag passiert.

In MVCPortlet, wenn Sie direkt von einer anderen JSP-Seite eine JSP-Seite aufrufen möchten, müssen Sie den Namen des Portlets: Name param als „mvcPath“, sagen:

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

Dieses feine funktioniert.

Hoffe, das wird Ihnen helfen.

Verwandte Themen