使用するフレームワークに応じて、これを達成するためのオプションがいくつかあります。(Liferay MVC ポートレット、Spring ポートレット、JSF)
この回答では、MVC ポートレットを使用していると仮定します。
みんなのお気に入りの例である Hello World を見てみましょう:
public class HelloWorldPortlet extends MVCPortlet{
@Override
public void doView(RenderRequest renderRequest, RenderResponse renderResponse) throws IOException, PortletException {
renderRequest.setAttribute("helloMessage", "Hello World");
super.doView(renderRequest, renderResponse);
}
}
これはそのままでは機能しません。
portlet.xml の変更で:
<portlet-class>com.liferay.util.bridges.mvc.MVCPortlet</portlet-class>
に:
<portlet-class>**Your Package structure**.HelloWorldPortlet</portlet-class>
view.jsp
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<portlet:defineObjects />
<%-- Option A --%>
<h1>
<c:out value="${helloMessage}" />
</h1>
<%-- Option B --%>
<%
String message = (String)request.getAttribute("helloMessage");
%>
<h1>
<%= message %>
</h1>
カスタム アクション:
View.jsp
<portlet:actionURL name="worldHello" var="worldpageURL" />
<aui:a href="${worldpageURL}">World hello</aui:a>
<h2><c:out value="${worldHello}"/></h2>
HelloWorldポートレット
public class HelloWorldPortlet extends MVCPortlet{
@Override
public void doView(RenderRequest renderRequest, RenderResponse renderResponse) throws IOException, PortletException {
renderRequest.setAttribute("helloMessage", "Hello World");
super.doView(renderRequest, renderResponse);
}
public void worldHello(ActionRequest request, ActionResponse renderResponse){
request.setAttribute("worldHello", "World Hello");
}
}
あなたのコメントに基づいて、次のことを検討するのが最善です:
http://www.liferay.com/community/liferay-projects/liferay-faces/documentation
JSFベースのポートレットが将来の主な焦点になる可能性があるため
http://www.liferay.com/community/blogs?p_p_id=115&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&_115_struts_action=%2Fblogs_aggregator%2Fview_entry&_115_entryId=13443886