.


:




:

































 

 

 

 





- , Portlet API Servlet API, .

:

J2EE Web-;

;

Web- .

:

, ;

, URL , , : , URL
;

, ;

, .

:

;

, , .

Web-. , WAR- Web- ( web.xml). - ( portlet.xml).

, ,
init(), , ( , ..).

init() , PortletConfig, . , PortletContext.

, , - - , ( , ). , , UnavailableException, , . , , , , .

destroy() , init(). destroy() : .

. .

:

View ;

Help ;

Edit ;

Configure , .

.

-

- . .

5. JAVA_HOME=C:\jdk1.5.0

6. PATH %JAVA_HOME%\bin

7. Apache Ant http://ant.apache.org/

8. , , C:\ant

9. ANT_HOME=C:\ant

10. PATH %ANT_HOME%\bin

11. Jetspeed2 c http://portals.apache.org/jetspeed-2/

12. , , C:\jetspeed2

13. build.properties

jetspeed.deploy.dir=C:/jetspeed2/jakarta-tomcat-

5.5.9 /webapps/jetspeed/WEB-INF/deploy

14. Windows

15.

C:/jetspeed2/jetspeed-database/start-database.bat

16.

C:/jetspeed2/jakarta-tomcat-5.5.9/bin /startup.bat

17. ant deploy

18. http://localhost:8080/jetspeed

19. (
admin, )

20. .

Portlet API , , . portlet-. javax.portlet.

SamplePorltet. , , . , init(PortletConfig config), doEdit(), doView(), doHelp(). processAction() ( ).

/* # 1: : SamplePorltet.java*/

package com.learning.portlet;

import java.io.IOException;

import javax.portlet.ActionRequest;

import javax.portlet.ActionResponse;

import javax.portlet.GenericPortlet;

import javax.portlet.PortletConfig;

import javax.portlet.PortletContext;

import javax.portlet.PortletException;

import javax.portlet.PortletMode;

import javax.portlet.PortletPreferences;

import javax.portlet.PortletRequest;

import javax.portlet.PortletRequestDispatcher;

import javax.portlet.RenderRequest;

import javax.portlet.RenderResponse;

 

public class SamplePortlet extends GenericPortlet {

private static final String EDIT_PAGE_PARAM

= "Edit-Page";

private static final String HELP_PAGE_PARAM

= "Help-Page";

private static final String VIEW_PAGE_PARAM

= "View-Page";

 

public void init(PortletConfig config)

throws PortletException {

super. init(config); //

}

// ,

public void doEdit(RenderRequest request,

RenderResponse response)

throws PortletException,IOException {

PortletContext context = getPortletContext();

//

setRequestAttributes(request); //

// responce

PortletRequestDispatcher rd = context.

getRequestDispatcher(getInitParameter(EDIT_PAGE_PARAM));

rd.include(request, response); /*

*/

}

// ,

public void doHelp(RenderRequest request,

RenderResponse response)

throws PortletException, IOException {

PortletContext context = getPortletContext();

//

setRequestAttributes(request); //

// responce

PortletRequestDispatcher rd = context.

getRequestDispatcher(getInitParameter(HELP_PAGE_PARAM));

rd.include(request, response); //

}

// ,

public void doView(RenderRequest request,

RenderResponse response)

throws PortletException, IOException {

PortletContext context = getPortletContext();

//

setRequestAttributes(request); //

// response

PortletRequestDispatcher rd = context.

getRequestDispatcher(getInitParameter(VIEW_PAGE_PARAM));

rd.include(request, response); //

}

//

public void processAction(ActionRequest request,

ActionResponse response)

throws PortletException, IOException {

PortletMode mode = request.getPortletMode(); /*

*/

PortletPreferences preferences =

request.getPreferences(); //

if (mode.equals(PortletMode.VIEW)) {

//

preferences.setValue("firstName",

request.getParameter("firstName"));

 

preferences.setValue("lastName",

request.getParameter("lastName"));

 

preferences.setValue("address",

request.getParameter("address"));

 

preferences.setValue("telephone",

request.getParameter("telephone"));

preferences.store();

}

}

//

private void setRequestAttributes(PortletRequest

request) {

PortletPreferences preferences =

request.getPreferences();

request.setAttribute("firstName",

preferences.getValue("firstName", "undefined"));

 

request.setAttribute("lastName",

preferences.getValue("lastName", "undefined"));

 

request.setAttribute("address",

preferences.getValue("address", "undefined"));

 

request.setAttribute("telephone",

preferences.getValue("telephone", "undefined"));

 

request.setAttribute("portletName",

getPortletName());

}

}

portlet.xml, .

<!-- # 2: : portlet.xml- ->

<?xml version="1.0" encoding="UTF-8"?>

<portlet-app

xmlns=

"http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"

version="1.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/

portlet-app_1_0.xsd

http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">

 

<portlet id="sample-application">

<!-- -->

<description>Portlet Application</description>

<!-- -->

<portlet-name>SamplePortlet</portlet-name>

<!-- -->

<display-name>Sample Portlet</display-name>

<!-- -->

<portlet-class> com.learning.portlet.SamplePortlet</portlet-class>

<!-- -->

<init-param>

<name>ViewPage</name>

<value>/WEB-INF/jsp/sample-view.jsp</value>

</init-param>

<init-param>

<name>HelpPage</name>

<value>/WEB-INF/jsp/sample-help.jsp</value>

</init-param>

<init-param>

<name>EditPage</name>

<value>/WEB-INF/jsp/sample-edit.jsp</value>

</init-param>

<!-- , . -1 cache
-->

<expiration-cache>-1</expiration-cache>

<!-- -->

<supports>

<mime-type>text/html</mime-type>

<portlet-mode>view</portlet-mode>

<portlet-mode>help</portlet-mode>

<portlet-mode>edit</portlet-mode>

</supports>

<!-- -->

<supported-locale>en</supported-locale>

<!-- -->

<resource-bundle> com.learning.portlet.SamplePortlet</resource-bundle>

<!-- -->

<portlet-info>

<!-- -->

<title>Portlet Application</title>

<short-title>Portlet</short-title>

<!-- -->

<keywords>portlet</keywords>

</portlet-info>

</portlet>

</portlet-app>

web.xml web-, - web-, .

/* # 3: : web.xml*/

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

version="2.4">

<display-name>Sample</display-name>

</web-app>

JSP-, . , : , (, ): RenderRequest, RenderResponse, PortletConfig. , .

<!-- # 4: : sample-edit.jsp - ->

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

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

<portlet:defineObjects/>

<portlet:actionURL var="editAction" portletMode="view"/>

<c:set var="inputTextStyle" value="border: none; width: 150px; color: #000000;"/>

<c:set var="inputSubmitStyle" value="border: none; width: 75px;"/>

<c:set var="labelStyle" value="text-align: right; color: #000000; white-space: nowrap;"/>

<fmt:setBundle basename="com.learning.portlet.SamplePortlet"/>

<form action="${editAction}" method="post">

<table style="border: none;">

<tbody>

<tr><td style="${labelStyle}">

<fmt:message key="portlet.label.firstname"/>:

</td>

<td nowrap="nowrap">

<input type="text" name="firstName" value="${firstName}"

style="${inputTextStyle}"/>

</td>

</tr>

<tr><td style="${labelStyle}">

<fmt:message key="portlet.label.lastname"/>:

</td>

<td nowrap="nowrap">

<input type="text" name="lastName" value="${lastName}"

style="${inputTextStyle}"/>

</td>

</tr>

<tr><td style="${labelStyle}">

<fmt:message key="portlet.label.address"/>:

</td>

<td nowrap="nowrap">

<input type="text" name="address" value="${address}"

style="${inputTextStyle}"/>

</td>

</tr>

<tr><td style="${labelStyle}">

<fmt:message key="portlet.label.telephone"/>:

</td>

<td nowrap="nowrap">

<input type="text" name="telephone" value="${telephone}"

style="${inputTextStyle}"/>

</td>

</tr>

<tr><td colspan="2" align="right">

<button type="submit" style="${inputSubmitStyle}">

<fmt:message key="portlet.button.submit"/>

</button>

</td>

</tr>

</tbody>

</table>

</form>

<!-- # 5:: sample-help.jsp- ->

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

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

<portlet:defineObjects/>

<fmt:setBundle basename="com.learning.portlet.SamplePortlet"/>

<table><tbody>

<tr>

<td colspan="2">

&nbsp;&nbsp;

<fmt:message key="portlet.name.message">

<fmt:param>${portletName}</fmt:param>

</fmt:message><br>

&nbsp;&nbsp;

<fmt:message key="portlet.storeduser.message">

<fmt:param>${firstName}</fmt:param>

<fmt:param>${lastName}</fmt:param>

</fmt:message>

</td></tr>

<tr>

<td align="center">

<portlet:renderURL var="viewUrl" portletMode="view"/>

<a href="${viewUrl}" style="text-decoration: none;">

<fmt:message key="portlet.viewpage.link"/>.

</a>

</td>

<td align="center">

<portlet:renderURL var="editUrl" portletMode="edit"/>

<a href="${editUrl}" style="text-decoration: none;">

<fmt:message key="portlet.editpage.link"/>.

</a>

</td></tr>

</tbody>

</table>

<!-- # 6:: sample-view.jsp- ->

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

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

<portlet:defineObjects/>

<c:set var="labelStyle" value="text-align: right; color: #000000; white-space: nowrap;"/>

<c:set var="textStyle" value="text-align: left; color: #000000; white-space: nowrap;"/>

<fmt:setBundle basename="com.learning.portlet.SamplePortlet"/>

<table>

<tbody style="background-color: ">

<tr>

<td style="${labelStyle}">

<fmt:message key="portlet.label.firstname"/>:

</td>

<td style="${textStyle}">

${firstName}

</td>

</tr>

<tr>

<td style="${labelStyle}">

<fmt:message key="portlet.label.lastname"/>:

</td>

<td style="${textStyle}">

${lastName}

</td>

</tr>

<tr>

<td style="${labelStyle}">

<fmt:message key="portlet.label.address"/>:

</td>

<td style="${textStyle}">

${address}

</td>

</tr>

<tr>

<td style="${labelStyle}">

<fmt:message key="portlet.label.telephone"/>:

</td>

<td style="${textStyle}">

${telephone}

</td>

</tr>

</tbody>

</table>

# # 7: :SamplePortlet_en.txt

portlet.label.firstname = First name

portlet.label.lastname = Last name

portlet.label.address = Address

portlet.label.telephone = Telephone number

portlet.button.submit = Store

portlet.name.message = This is the simple help page of the portlet <span style="font-weight: bolder">{0}</span>.

portlet.storeduser.message = Stored user is <span style="font-weight: bolder"> {0} {1}</span>.

portlet.viewpage.link = View page

portlet.editpage.link = Edit page

# # 8:: :SamplePortlet_ru.txt

portlet.label.firstname =

portlet.label.lastname =

portlet.label.address =

portlet.label.telephone =

portlet.button.submit =

portlet.name.message = <span style="font-weight: bolder">{0}</span>.

portlet.storeduser.message = <span style="font-weight: bolder"> {0} {1}</span>.

portlet.viewpage.link =

portlet.editpage.link =

/* # 9: : build.xml*/

<?xml version="1.0" encoding="UTF-8"?>

<project name="SamplePortlet" default="war" basedir=".">

<property file="build.properties"/>

<property name="src.dir" value="src"/>

<property name="jsp.dir" value="jsp"/>

<property name="java.dir" value="java"/>

<property name="message.dir" value="message"/>

<property name="config.dir" value="config"/>

<property name="lib.dir" value="lib"/>

<property name="src.lib.dir" value="${src.dir}/${lib.dir}"/>

<property name="src.java.dir" value="${src.dir}/${java.dir}"/>

<property name="src.jsp.dir" value="${src.dir}/${jsp.dir}"/>

<property name="src.message.dir" value="${src.dir}/${message.dir}"/>

<property name="src.config.dir" value="${src.dir}/${config.dir}"/>

<property name="webapp.dir" value="WEB-INF"/>

<property name="result.dir" value="result"/>

<property name="classes.dir" value="classes"/>

<property name="project.name" value="SamplePortlet"/>

<property name="localization.encoding" value="Cp1251"/>

<property name="localization.src.dir" value="${src.message.dir}/com/learning/portlet"/>

<property name="localization.result.dir" value="${result.dir}/${classes.dir}/com/learning/portlet"/>

<property name="localization.ext" value=".properties"/>

<target name="compile" description="Compiles all source files of the portlet.">

<mkdir dir="${result.dir}/${classes.dir}"/>

<javac srcdir="${src.java.dir}" destdir= "${result.dir} /${classes.dir}" optimize="yes" debug="no">

<classpath>

<fileset dir="${src.lib.dir}">

<include name="**/*.jar"/>

</fileset>

</classpath>

</javac>

<copy todir="${result.dir}/${classes.dir}">

<fileset dir="${src.message.dir}" excludes="**/*.txt"/>

</copy>

<native2ascii src="${localization.src.dir}" dest=

"${localization.result.dir}" includes="**/*.txt"

encoding="${localization.encoding}" ext="${localization.ext}"/>

</target>

<target name="war" depends="compile" description= "Creates.war file of the portlet.">

<war destfile="${result.dir}/${project.name}.war"

webxml="${src.config.dir}/web.xml" compress="on">

<lib dir="${src.lib.dir}">

<exclude name="**/portlet-api-1.0.jar"/>

</lib>

<classes dir="${result.dir}/${classes.dir}"/>

<zipfileset dir="${src.config.dir}" prefix="${webapp.dir}">

<include name="**/*.*"/>

<exclude name="**/web.xml"/>

</zipfileset>

<zipfileset dir="${src.jsp.dir}" prefix=

"${webapp.dir}/${jsp.dir}"/>

</war>

</target>

<target name="deploy" depends="war" description ="Deploys.war file of the portlet.">

<copy todir="${jetspeed.deploy.dir}">

<fileset file="${result.dir}/${project.name}.war"/>

</copy>

</target>

<target name="clean" description=

"Deletes all result files of the portlet.">

<delete dir="${result.dir}"/>

</target>

</project>

# # 10: ant: build.properties

jetspeed.deploy.dir = E:/web/jetspeed-2.0-M3-Tomcat-5.5.9 /jakarta-tomcat-5.5.9/webapps/jetspeed/WEB-INF/deploy

 





:


: 2016-04-03; !; : 638 |


:

:

.
==> ...

1503 - | 1339 -


© 2015-2024 lektsii.org - -

: 0.209 .