2016-07-11 3 views
1

Я новичок в разработке Liferay, и у меня есть довольно простой вопрос.Позвоните на страницу jsp из портала Liferay

У меня есть пример портлета, который показывает текстовое сообщение, и мне нужно отобразить его в Liferay Portal. Как я могу это сделать ? код 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

Как я могу написать тот же портлет без кода Java в View.jsp файле?

Вы должны переопределить 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, получить атрибут greeting, используя EL ${greeting}.

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

<portlet:defineObjects /> 

<p>${greeting}</p> 

Ouput:

Hello! Welcome to our portal. 
+0

Спасибо за ваш ответ, но я имел в виду что-то другое. Я постараюсь объяснить лучше. У меня есть java-файл, и у меня есть файл view.jsp с java-кодом. Как я могу написать один и тот же портлет без java-кода в файле view.jsp? – German

+0

Я отредактировал ответ. Вы увидите, как вызвать Java-код из jsp. –

+0

Если я вставляю этот код, он не работает. Я действительно не понимаю, почему, просто пустой портлет без текстовых сообщений. P.S. Почему мы должны переопределить метод render(), но doView()? Этот код кажется очень простым, и я получаю sooo разочарование:/ – German