2016-07-11 11 views
1

Liferay開発の初心者です。私はかなり簡単な質問があります。Liferayポータルからjspページを呼び出してください。

私は、テキストメッセージを表示し、Liferayポータルに表示する必要があるポートレットの例を持っています。これどうやってするの ? JSPコードは以下の通りです:

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

<portlet:defineObjects /> 

<% 
    PortletPreferences prefs = renderRequest.getPreferences(); 
    String greeting = (String)prefs.getValue("greeting", "Hello! Welcome to our portal."); 
%> 

<p><%= greeting %></p> 

答えて

1

EDIT私はview.jspファイル内のJavaコードなしで同じポートレットを書き込むことができますどのように

あなたは属性を初期化するためにMVCPortletsにdoViewメソッドをオーバーライドする必要があります、の属性greetingを考えてみましょう。

public class Greeting extends MVCPortlet { 

    @Override 
    public void doView(RenderRequest renderRequest, RenderResponse renderResponse) throws IOException, PortletException { 

     renderRequest.setAttribute("greeting", "Hello! Welcome to our portal."); 

     super.doView(renderRequest, renderResponse); 
    } 
} 

そして、あなたのJSPファイルで、EL ${greeting}を使用してgreeting属性を取得:たとえば。

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

<portlet:defineObjects /> 

<p>${greeting}</p> 

出力リレー:

Hello! Welcome to our portal. 
+0

は、あなたの答えをありがとう、私は何かを意味しました。私はより良い説明をしようとします。 私はjavaファイルを持っており、そこにjavaコードを持つview.jspファイルを持っています。 view.jspファイルにJavaコードなしで同じポートレットを作成するにはどうすればよいですか? – German

+0

私は答えを編集しました。 jspからJavaコードを呼び出す方法がわかります。 –

+0

このコードを貼り付けると機能しません。私は本当に理由を理解していない、何もテキストメッセージのない空のポートレット。 S. render()メソッドでなくdoView()をオーバーライドする必要があるのはなぜですか? このコードは非常に簡単だと思います。/ – German

関連する問題