2012-04-07 5 views
3

私はliferay 6 Portlet開発に取り組んでいます。 私はそれが初めてです。 このように、別のJSPへのハイパーリンクを表示する必要があります。ポートレット:renderURLが動作しない

私はハイパーリンクをクリックしたとき、それが唯一の

しかし、これは

に動作していないディスプレイに最初にJSPをaain手段(別のJSPがpage2.jspと呼ばれるが、これは動作していない持って
<a href="<portlet:renderURL> 
    <portlet:param name="jspPage" value="/WEB-INF/view/page2.jsp" /> 
    </portlet:renderURL>"> 
</a> 

これは私の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> 

=========

です

これはpag2.jsp

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

ポートレット(または使用しているフレームワークの同等のもの)の 'doView()'メソッドを投稿できますか? – soulcheck

+0

ちょっとしたアドバイス:ポートレットjspには、 'html'、' head'、 'body'というタグは入れてはいけません。ポートレットJSPで記述するすべてのものは、 'body'タグ内のフラグメントでなければならず、これらの外部タグはポータル自体によって処理されます。ありがとうございます –

答えて

4

であるあなたは、あなたのPage1.jspを、次のコードを試してみて、それが動作するかどうかを確認することができます:

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

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

とすることができるよりも、それは、これが問題であるならば引用符( "")で囲みます。

それは、あなたはあなたがMVCPortletを拡張しているポートレットのような詳細を提供することができていない場合など

+2

2012年にscritplet構文を使用しないでください。ほとんどの場合、 '$ {varname}'または ''を使用する方が良いです。 – soulcheck

+0

@soulcheck: ELバージョンも含まれています。ところで、あなたがソースコードを読んだら、liferayはスクリプトレットをたくさん使います。とにかく言及してくれてありがとう。 –

+0

私は、生き残るための場所の周りにそれを見て使用するかもしれないルーキーdevversのためにそれを言及したいと思ったliferayそれを行うと、それは本当に醜いとunmaintainableです。彼らはコンテンツの99%がjavaであるいくつかのjspを持っています(彼らは実際にファイルの名前を変更することができ、ほとんどコンパイルします)。これはビューコントローラの分離を破るため、間違っています。 – soulcheck

0

私はこの問題は、タグに起こると考えています。あなたが別のJSPページから直接JSPページを呼び出したい場合は、ポートレット名前を付ける必要がありMVCPortletで

、:「mvcPath」としてのparamの名前は、言う:

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

これは正常に動作します。

希望すると、これが役立ちます。