這個portlet有一個text欄位輸入字串,submit後會在上方出現剛剛輸入的字串。
1. 延續之前的設定,將c:\tomcat\shared\lib\portlet-api-1.0.jar加入CLASSPATH
2. EchoPortlet.java :
3. echo.jsp
4. Portlet.xml
5. web.xml
6. 準備sample.war檔,結構如下 ( portlet.tld 可從c:\tomcat\webapps\jetspeed\WEB-INF 拷貝 ):
7. 將sample.war拷到 C:\tomcat\webapps\jetspeed\deploy 下
8. 以admin這個帳號登入Jetspeed,點選左方的"Jetspeed Administrative Portlets"
9. 點選上方的"PALM"(Portlet Application Lifecycle Management),可以看到已經deploy的portlet application, 剛剛的sample應該在也在其中。可以從這裡undeploy / delete 不用的portlet application。
10. 接著點選上方的Portal Site Manager,會出現整個site目前的結構。點選"Root Folder"這個節點,右方會出現"Folder Details"的portlet。
11. 點選下方的"[Add Page]",然後在"Name"、"Title"、"Short Title"都輸入Sample,然後按"Save"。
12. 回到首頁,應該可以看到多了一個"Sample"的tab;在C:\tomcat\webapps\jetspeed\WEB-INF\pages下也多了一個Sample.psml的檔
13. 編輯Sample.psml如下:
14. 點選那個Sample 的tab,Portlet載入後應該就可以看到了
1. 延續之前的設定,將c:\tomcat\shared\lib\portlet-api-1.0.jar加入CLASSPATH
2. EchoPortlet.java :
1 |
package sample; import java.io.IOException; import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.GenericPortlet; import javax.portlet.PortletException; import javax.portlet.PortletRequestDispatcher; import javax.portlet.PortletSession; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; publicclass EchoPortlet extends GenericPortlet{protectedvoid doView(RenderRequest renderRequest, RenderResponse renderResponse)throws PortletException, IOException { renderResponse.setContentType("text/html"); String jspName = "/jsp/echo.jsp"; PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(jspName); rd.include(renderRequest, renderResponse); } /* (non-Javadoc) * @see javax.portlet.GenericPortlet#processAction(javax.portlet.ActionRequest, javax.portlet.ActionResponse) */publicvoid processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws PortletException, IOException { PortletSession session=actionRequest.getPortletSession(); session.setAttribute("LAST_TYPED_STRING",actionRequest.getParameter("input")) ; }} |
3. echo.jsp
1 |
<%@ page language="java" session="true" import="javax.portlet.PortletSession"%> <%@ taglib uri='/WEB-INF/portlet.tld' prefix='portlet'%> <portlet:defineObjects/> <portlet:actionURL var="action" /> <p></p> <% PortletSession portletSession=renderRequest.getPortletSession(); String lastTypedString=(String)portletSession.getAttribute("LAST_TYPED_STRING"); if(lastTypedString!=null&&lastTypedString.length()>0){ %> The string you typed is:<b><%=lastTypedString%></b> <br/> <%}%> <form action="<%=action%>" method="post"> <input type="text" name="input" id="input" /> <input type="submit" value="submit" /> </form> <p></p> |
4. Portlet.xml
1 |
<?xml version="1.0" encoding="UTF-8"?> <portlet-app id="sample"> <portlet id="EchoPortlet"> <portlet-name>Echo Portlet</portlet-name> <portlet-class>sample.EchoPortlet</portlet-class> <expiration-cache>30</expiration-cache> <supports> <mime-type>text/html</mime-type> <portlet-mode>view</portlet-mode> </supports> <supported-locale>en-US</supported-locale> <portlet-info> <title>EchoPortlet</title> <short-title>EchoPortlet</short-title> <keywords>EchoPortlet</keywords> </portlet-info> </portlet> </portlet-app> |
5. web.xml
1 |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>Sample</display-name> </web-app> |
6. 準備sample.war檔,結構如下 ( portlet.tld 可從c:\tomcat\webapps\jetspeed\WEB-INF 拷貝 ):
7. 將sample.war拷到 C:\tomcat\webapps\jetspeed\deploy 下
8. 以admin這個帳號登入Jetspeed,點選左方的"Jetspeed Administrative Portlets"
9. 點選上方的"PALM"(Portlet Application Lifecycle Management),可以看到已經deploy的portlet application, 剛剛的sample應該在也在其中。可以從這裡undeploy / delete 不用的portlet application。
10. 接著點選上方的Portal Site Manager,會出現整個site目前的結構。點選"Root Folder"這個節點,右方會出現"Folder Details"的portlet。
11. 點選下方的"[Add Page]",然後在"Name"、"Title"、"Short Title"都輸入Sample,然後按"Save"。
12. 回到首頁,應該可以看到多了一個"Sample"的tab;在C:\tomcat\webapps\jetspeed\WEB-INF\pages下也多了一個Sample.psml的檔
13. 編輯Sample.psml如下:
1 |
<?xml version="1.0" encoding="UTF-8"?> <page id="/Sample.psml" hidden="false" version=""> <title>Sample</title> <short-title>Sample</short-title> <defaults layout-decorator="tigris" portlet-decorator="tigris"/> <fragment id="P-1082c720c8c-10000" type="layout" name="jetspeed-layouts::VelocityTwoColumns"> <fragment id="28825252" type="portlet" name="sample::EchoPortlet"> <property layout="TwoColumns" name="row" value="0" /> <property layout="TwoColumns" name="column" value="0" /> </fragment> </fragment> </page> |
14. 點選那個Sample 的tab,Portlet載入後應該就可以看到了