Download Short Portlet Programming Guide

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Short Portlet Programming Guide
in P-Grade (Gridsphere)
environment
G. Hermann
Content
•
•
•
•
•
Main ideas
Execution model
Representation
Part I Java – JSP collaboration
Part II Definition of Portlets by portlet.xml
and layout.xml
• Tomcat directory hierarchy
Main ideas
• Layout design and business logic are
separated
• Response WEB pages are generated with
the help of run time compiled and linked
java code.
• Even little parts of WEB pages can be
handled independently (portlet concept)
Warning !
• We restrict ourselves to the Portlet
implementation of the Gridsphere
• Focus on the class ActionPortlet
Tasks:
– Defines “states” described by Java Servlet
Pages (Jsp)
– Defines callback routines called
• before HTML response generation (view)
• after user action (update)
Execution model - possible ways
Next
requests
from client
First
request
from client
init(PotletConfig)
Y(ActionFormEvent)
X(RenderFormEvent)
HTTML
response
generation
Execution model-regime modify
Next
requests
from client
First
request
from client
init(PotletConfig)
Y(ActionFormEvent)
X(RenderFormEvent)
HTTML
response
generation
Execution model-regime show
Next
requests
from client
First
request
from client
init(PotletConfig)
X(RenderFormEvent)
HTTML
response
generation
Representation I
•
•
•
•
•
java code (Action Portlet)
defines the callback routines and the current (and next) state made
intuitive to the client by defining the selection of the proper Jsp page
in that state. The java code is responsible for the whole business
logic.
Java Servlet Page (JSP) (file: xx.jsp)
Composes the frame of the layout and defines communication
interface between the client and java code in a given state.
The UI Tag Library
defines the layout and the passive –data- interface between java
code and JSP. The Java representation of the UI Tag Library follows
the Bean concept. The JSP representation of UI Tag Library is XML.
“portlet.xml” defines the portlet and references the java code
“layout.xml” defines the menu hierarchy haw the callable portlets
should appear. (layout.xml is GridSphere specific!)
Representation II
Next
requests
from client
First
request
from client
class Any extends ActionPortlet
init(PotletConfig)
Y(ActionFormEvent)
X(RenderFormEvent)
Ani.jsp
HTTML
response
generation
UI Tag
Library
objects
Remarks(1) UI TAG LIBRARY
• The UI Tag Library is not discussed in detailed in
the subsequent example.
• The Java side usage of it is self explaining by
the Bean paradigm.
• For the XML usage of it in the JSP file consult
the document:
http://www.gridsphere.org/gridsphere/docs/TagG
uide/TagGuide.htm
• What you must know is that the interface
variables are identified by associated Strings
Remarks(2) State Transitions
Please note that the event handling interrupt
routines of the Java Class ActionPortlet may
terminate with the state transition instruction
setNextState(PortletReqest,String), where the
String parameter may refer either
– a name of a routine, or
– a JSP. The action defined in that JSP defines the next
state.
Remarks(3) other state subtilities
• The String “DEFAULT_HELP_PAGE” is
used to define a JSP when the client hits
the “?” icon on the portlet
• The String “DEFAULT_EDIT_PAGE” is
used to define a JSP when client hits the
“pen” edit icon.
Remarks (4) Programing style
• The JSP pages may contain direct java
code fragments among UI tags and forms.
However you are emphatically asked to
avoid them: The overview of the program
logic can be lost easily if the program code
is fragmented, and the JSP is not used as
its designated: for gathering and rendering
of client data.
Part I: Life Cycle of a Portlet by an
example
The simple Portlet “EnterName” redisplays
a single string entered by the client.
EnterName.java and the corresponding EnterName.jsp files
First Request arrives from the client
Next
requests
from client
First
request
from client
Init(PotletConfig)
Y(ActionFormEvent)
X(RenderFormEvent)
The routine init
will be activated
HTTML
response
generation
Java – Jsp connections-1
DEFAULT_VIEW_PAGE determines
that before the elaboration of the first
response the given rendering routine
will be called.
First Rendering
Next
requests
from client
First
request
from client
Init(PotletConfig)
Y(ActionFormEvent)
X(RenderFormEvent)
Variables need to
show to the client
are prepared
HTTML
response
generation
Java – Jsp connections-2
The jsp is referenced by the
java code.
After the running of the
routine the HTML generation
defined by the Jsp will be
performed
Java – Jsp connections-3
The parameter referenced by the
handle “nameSessionHandle”
does not exist, therefore the bean
object referenced “nameOld” –
wich will be created upon the first
reference –receives the value “not
defined”.
Java – Jsp connections-4
The bean referenced as
“nameOld” will be used to
display the value known by
the system before the user
interaction.
Java – Jsp connections-5
The jsp page will
generate the HTML
response
HTML generated by the JSP as it appears for the Client
The Jsp page will generate the HTML code in the
response for the selected frame
Java – Jsp connections-6
The internally generated
bean objects are used to
exchange data between
Jsp defined HTML code
and Java routines
Java – Jsp connections-7
The user hitting the button labeled as “Update” generates a Request
activating the routine updateName
Java – Jsp connections-8
Example: The Client fills the text field as
“newValue”, and hits the
Button “Update”
Repeated request arrives
Next
requests
from client
First
request
from client
Init(PotletConfig)
The prescribed
ActionFormEvent
handler will be
activated.
Y(ActionFormEvent)
X(RenderFormEvent)
HTTML
response
generation
Java – Jsp connections-9
In the action event handler the value
defined by the client and stored in a
bean referenced as “nameNew” will
be read
Java – Jsp connections-10
The text value will be forwarded to
the subsequent rendering routine
via the handle
“nameSessionHandle”
Java – jsp connections
As a last step the routine triggers
the rendering event
Repeated Rendering
Next
requests
from client
First
request
from client
Init(PotletConfig)
Y(ActionFormEvent)
X(RenderFormEvent)
HTTML
response
generation
Java – Jsp connections-11
As the value associated by
“nameSessionHandle” is not empty
the bean referenced as “nameOld”
will receive this value
HTML generated by the JSP as it appears for the Client after repeated
Rendering
The bean referenced “nameOld” now
has the value “newValue”
Summary of all external Java- Jsp connections
Part II Definition of a Portlet
• A new portlet prepared by the java and
JSP files must have an entry in the file
“portlet.xml” and it
• must be referenced in the file
“layout.xml”,
• must define an interpreter java class path,
• And a title label
The new potrlet
portlet.xml
Portlet name will
be referenced in
file layout.xml
Path of the java class
controlling the portlet
Text in the title of the portlet
The layout.xml
• Must define the menu hierarchy
• Define the appropriate labels for the user
navigation
• Reference the used portlets
layout.xml
Display name of a
group of a
submenu
Display name of
of a submenu
item
Portlet as a
submenu
item
Referencing the
name of the
potled defined in
portlet.xml
Referencing the
web application
Summary of connectons: layout.xml, portlet.xml and HTML image
Tomcat dictionary
…jsp
enterName.jsp
…jsp
…/
webapps/
…/
…/
portal30/
…/
…/
hello/
…/
jsp/
…/
WEB-INF/
…/
The jar files encountered here
must correspond to the import
references defined in
EnterName.java
hu/
sztaki/
lpds/
pgportal/
portlets/
hello/
EnterName.class
…/
lib/
classes/
portlet.xml
layout.xml