WebLogic Portlets for Siebel Development Guide
WebLogic Portlets for Siebel Development Guide
This document explains how to develop Portlets for the BEA WebLogic Portlets for Siebel application from an existing framework.
The BEA WebLogic Portlets for Siebel V1.0 application integrates the BEA WebLogic Portal application with the Siebel 7.0.4 system.
This guide contains the following sections:
About Portlet Architecture
The basic architecture of the BEA Portal application helps in integrating with the business objects from Siebel 7.0.4 system.
Figure 1 Architecture diagram
About Login Portlet Transaction Flow
- The Login portlet is used to login to the portal.
- The user enters the user credentials and clicks Submit. The request is posted to a Backing file.
- The Backing file uses BEA's API for authentication to validate the entered user credentials. On successful validation the logged in user information is stored for the session.
- On successful login, portlets are displayed with information based on the user information that is stored in the session by the backing file. Otherwise the login screen is shown with the appropriate message.
Business Portlet Transaction Flow
- A Business Process Request is invoked from the portlet.
- Any action in the portlet is routed to the Business Object Controller (BOC) specific to that portlet through the Java Page Flow (JPF).
- First, the control comes to the JPF depending on the action performed in the portlet.
- Before sending the business request to the BOC, validations are performed if any, using the Validator. If any validation error occurs then the request is redirected to the pages specified in the error handling mechanism for that action.
- On successful validation, the JPF routes the request to the BOC.
- The Business Object routes the request to the Data Engine Layer (DEL).
- Siebel Data Engine layer processes the request by accessing the Database Layer (DBL).
- The responsibility of the Data Engine Layer (DEL) is to process the business request, get the required information using the Database Layer (DBL), connect to the ERP and call the respective business object to process the Business Request and return the response back to the JPF, which in turn displays the portlet.
Creating a New Portal Application with the Portlets
To Create a New Portal Application with the Portlets (Siebel):
- Open BEA WebLogic Workshop application.
- Navigate to File New Application, and create an application category portal.
- To setup the data, right-click on the data folder and navigate to Install, and click on PortletsforSiebelPropertySet.
- Create a new Portal Web Project:
- Right-click on the newly created portal web project and select PortletsForSiebel option.
- Open the portal file (.portal) and right-click on the placeholder and insert the required portlets.
Adding the Portlets to an Existing Portal Application
To Add Portlets to an existing Portal Application:
- Open BEA WebLogic Workshop application.
- To setup the data, right-click on the data folder and navigate to Install, and click on Update PortletsforSiebelPropertySet.
- Right-click on the existing portal web project and select Update PortletsForSiebel option.
- Open the portal file (.portal) and right-click on the placeholder and insert the required portlets.
Creating a New Portlet
A sample portlet is available under the following location:
<%BEA_HOME%>\weblogic81\portal\thirdparty\siebelportlets\newportlet
To Create a New Portlet:
- Copy the sample .jsp and .jpf files in the folder having BEA portlets.
- Rename the sample file with the name of your choice.
- Modify the code in the .jpf and .jsp files that is inside "< >" brackets.
- Deploy the newly created portlet from BEA WebLogic Workshop.
Creating a New Portlet from a Pre-configured Business Object
To Create a New Portlet from a pre-configured business object:
- Copy the sample .jsp and .jpf files in the folder having BEA portlets.
- Rename the sample file with the name of your choice.
- Modify the code in the .jpf and .jsp files that is inside "< >" brackets.
- Deploy the newly created portlet from BEA WebLogic Workshop.
- Login to BEA WebLogic Portlets V1.0 as an administrator, if you want to change the look and feel of the portlet by changing the label names of the columns shown to the users.
Adding Create, Update, or Delete Functionality to an Existing Portlet
To Add Create, Update, or Delete functionality to an existing Portlet:
- Copy the sample .jsp and .jpf files in the folder having BEA portlets.
- Rename the sample files with the name of your choice.
- Under the sample folder there is a folder called portlets. Under this folder, there is a file called SamplePortlet.portlet. Rename this file with the name of your portlet.
- Under the sample folder there is one more folder called SamplePortletFlow. Rename the folder with the name of your portlet and append the word "Flow". Modify the .jsp and .jpf files as per your requirements.
- Under the SamplePortletFlow folder there is a folder called SamplePortletPref. Rename the folder with the name of your portlet and append the word "Flow". Modify the .jsp and .jpf files as per your requirements.
- Deploy the newly created portlet from BEA WebLogic Workshop.
Creating a New Portlet from a New Siebel Business Object
- Login to BEA WebLogic Portlets V1.0 as an administrator, and configure the business object as per your requirements. Refer to the Administration Guide (BEA WebLogic Portlets Administration Guide) for details.
- Deploy the newly created portlet from BEA WebLogic Workshop.
Analyzing Siebel Business Objects
Log in to your Siebel 7.0.4 system in order to get information regarding the available business objects. Once you have analyzed the business objects that you will be requiring for your application you can configure these business objects (Business Object Preferences) using the BEA WebLogic Portlets Administration screen. Refer to Administration Guide (BEA WebLogic Portlets Administration Guide) for details.
Extending the .jsp Template
The .jsp file is for viewing. This can be updated and extended as per the developer's requirements.
Extending the .jpf Template
The .jpf files can be updated and extended by adding new actions as per the requirements for the portlet.
Updating the .properties File for Configuring the Business Object
To update the .properties file:
- Open BEA WebLogic Workshop application.
- Open the file SiebelPortalNet.properties file.
- Update the properties file as per the requirements.
If a new portlet is developed, Pagelet ID and the required input fields for that portlet should be specified.
Deploying the Portal Application
- Open BEA WebLogic Workshop application.
Configuring BEA WebLogic Portlets Administration
The portlets can be configured using BEA WebLogic Portal Administration functionality.
For more information refer to Administration Guide for BEA WebLogic Portlets.
Understanding Application Constants
This section explains the purpose of the constants that are used across the product. This is helpful in centralizing the constants and their values.
DateFormat Constants Used in DateUtil.java: Constants defined under this section hold all the possible date formats used across the product.
Symbolic Constants: Constants defined under this section hold all the symbols used across the product. For example: "&", "<", ">"
Property set Name: Constant used to define the property file name representing Property set Name.
DataType Name Constants: Constants defined under this section hold all the datatypes used in the product to be shown as list of values.
Constants Used for Window: Constants defined under this section hold all values that are used to set the properties of the browser window created using javascript.
Constants Used for Code Lookup: Constants defined under this section hold all values that are used as one of the parameters while looking up for the code description.
Note: Any change to the constant applications without analysis will hinder the product functionality
Password Encryption
Password encryption is done using digital certificates. Digital certificates are generated using the Java keytool. Encryption and decryption is done using the DES algorithm on the private key and public key of the digital certificate.
Database Tables
This section describes the database design (tables, fields, data types, and so on).
Table 1 PNET_APPL_INSTANCE
Table Alias
|
PNET_APPL_INSTANCE
|
Description
|
This table holds the EIS application instance details.
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
ID
|
NUMBER
|
N
|
Unique id
|
APP_ID
|
NUMBER
|
N
|
Unique Application id for EIS
|
NAME
|
VARCHAR 2(32)
|
Y
|
Name of the EIS Application
|
NATIVE_BASE_URL
|
VARCHAR 2(300)
|
Y
|
URL to connect to the EIS Application
|
DEF_USER_NAME
|
VARCHAR 2(30)
|
Y
|
User id for connecting to the EIS Application
|
DEF_PASSWORD
|
VARCHAR 2(200)
|
Y
|
Password for connecting to the EIS Application
|
DEF_FLAG
|
VARCHAR 2(1)
|
Y
|
This flag represents the instance to be used by the application by default.
|
CON_STR_1
|
VARCHAR 2(30)
|
Y
|
Represents connection string parameters that are required to connect to EIS.
|
CON_STR_2
|
VARCHAR 2(30)
|
Y
|
Represents connection string parameters that are required to connect to EIS.
|
CON_STR_3
|
VARCHAR 2(30)
|
Y
|
Represents connection string parameters that are required to connect to EIS.
|
CON_STR_4
|
VARCHAR 2(30)
|
Y
|
Represents connection string parameters that are required to connect to EIS.
|
CON_STR_5
|
VARCHAR 2(30)
|
Y
|
Represents connection string parameters that are required to connect to EIS.
|
CON_STR_6
|
VARCHAR 2(30)
|
Y
|
Represents connection string parameters that are required to connect to EIS.
|
CON_STR_7
|
VARCHAR 2(30)
|
Y
|
Represents connection string parameters that are required to connect to EIS.
|
CON_STR_8
|
VARCHAR 2(30)
|
Y
|
Represents connection string parameters that are required to connect to EIS.
|
CON_STR_9
|
VARCHAR 2(30)
|
Y
|
Represents connection string parameters that are required to connect to EIS.
|
CON_STR_10
|
VARCHAR 2(30)
|
Y
|
Represents connection string parameters that are required to connect to EIS.
|
Primary Key
|
ID
|
Foreign Key
|
APP_ID
|
Sequence
|
ID
|
Table 2 PNET_APP_ROLE
Table Alias
|
PNET_APP_ROLE
|
Description
|
This table holds the possible user types.
Example: CUSTOMER, EMPLOYEE
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
ID
|
NUMBER
|
N
|
Unique Id
|
APP_ID
|
NUMBER
|
N
|
Unique Application id for EIS
|
ROLE_ID
|
NUMBER
|
N
|
Represents role Id (Example representing CUSTOMER/ EMPLOYEE)
|
Primary Key
|
ID
|
Foreign Key
|
APP_ID,ROLE_ID
|
Sequence
|
|
Table 3 PNET_COMP_DET
Table Alias
|
PNET_COMP_DET
|
Description
|
This table holds information pertaining to the Business Object Input/Output parameters.
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
ID
|
NUMBER
|
N
|
Unique Id
|
COMP_MAST_ID
|
NUMBER
|
Y
|
Represents for which business Object this info pertaining to
|
PAGELET_PARAM_ID
|
NUMBER
|
Y
|
Represents portlet id
|
PARAMETER_TYPE
|
VARCHAR2 (30)
|
Y
|
Represents either input or output
|
SUB_TYPE
|
VARCHAR2 (30)
|
Y
|
Represents type of parameter scalar/table/struct
|
NAME
|
VARCHAR2 (30)
|
Y
|
Name of the parameter
|
MANDATORY
|
CHAR (1)
|
Y
|
Whether this field is required or not
|
Primary Key
|
ID
|
Foreign Key
|
COMP_MAST_ID
|
Sequence
|
ID
|
Table 4 PNET_COMP_DET_SIEBEL
Table Alias
|
PNET_COMP_DET_SIEBEL
|
Description
|
This table holds default values for parameters for the business objects.
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
ID
|
NUMBER
|
Y
|
Represents the pagelet parameter id
|
COMP_DET_ID
|
NUMBER
|
N
|
Unique
|
FIELD_NAME
|
VARCHAR2 (30)
|
Y
|
Represents the fields name
|
DEFAULT_VALUE
|
VARCHAR2 (30)
|
Y
|
Holds default value
|
MANDATORY
|
CHAR (1)
|
Y
|
Represents either mandatory or not
|
COMP_DET_SIEBEL_ID
|
NUMBER
|
Y
|
Unique id
|
Primary Key
|
ID
|
Foreign Key
|
COMP_DET_ID
|
Sequence
|
COMP_DET_SIEBEL_ID
|
Table 5 PNET_COMP_MAST
Table Alias
|
PNET_COMP_MAST
|
Description
|
This table holds information pertaining to the Business Objects
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
ID
|
NUMBER
|
N
|
Unique Id
|
PAGELET_ID
|
NUMBER
|
N
|
Holds pagelet id
|
NAME
|
VARCHAR 2(100)
|
Y
|
Holds Name of the business object
|
APP_ID
|
NUMBER
|
Y
|
Represents application id
|
ACTION
|
VARCHAR 2(10)
|
Y
|
Represents the business object action used (create/update.)
|
AUTHOR
|
VARCHAR 2(1)
|
Y
|
Represents owner
|
VERSION
|
NUMBER
|
Y
|
Version
|
PORTLET_ID
|
NUMBER
|
Y
|
Represents portlet id
|
Primary Key
|
ID
|
Foreign Key
|
PAGELET_ID, PORTLET_ID
|
Sequence
|
ID
|
Table 6 PNET_CONN_STR_CFG
Table Alias
|
PNET_CONN_STR_CFG
|
Description
|
Holds the description for the instance details
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
ID
|
NUMBER
|
N
|
Unique Id
|
APP_ID
|
NUMBER
|
N
|
Represents EIS application
|
LABEL
|
VARCHAR 2(70)
|
Y
|
Represents label name for the parameter
|
COL_NAME
|
VARCHAR 2(30)
|
Y
|
Represents name of the column for the parameter
|
DISPLAY_ORDER
|
NUMBER
|
Y
|
--
|
Primary Key
|
ID
|
Foreign Key
|
APP_ID
|
Sequence
|
|
Table 7 PNET_PAGELET
Table Alias
|
PNET_PAGELET
|
Description
|
Holds the information pertaining to the portlets
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
ID
|
NUMBER
|
N
|
Unique id
|
APP_ID
|
NUMBER
|
N
|
Represents EIS application
|
NAME
|
VARCHAR 2(32)
|
N
|
Represents Portlet name
|
TITLE
|
VARCHAR 2(100)
|
N
|
Represents portlet title
|
VERSION
|
NUMBER
|
N
|
Portlet version
|
ACTION
|
VARCHAR 2(10)
|
Y
|
For which action like view, update, delete, create
|
CREATEDBY
|
VARCHAR 2(1)
|
Y
|
Represents creator name.
|
Primary Key
|
ID
|
Foreign Key
|
APP_ID
|
Sequence
|
ID
|
Table 8 PNET_PAGELET_DET
Table Alias
|
PNET_PAGELET_DET
|
Description
|
Holds the display parameters for the business object.
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
ID
|
NUMBER
|
N
|
Unique Id
|
PAGELET_ID
|
NUMBER
|
N
|
Id representing the portlet
|
NAME
|
VARCHAR 2(32)
|
N
|
Name of the display parameter
|
URL
|
VARCHAR 2(300)
|
Y
|
Url
|
TARGET_FLAG
|
VARCHAR 2(1)
|
N
|
Has values yes or no.
|
DATATYPE
|
VARCHAR 2(70)
|
N
|
Represents type of data Char, Number, Date
|
HIDDEN_FLAG
|
VARCHAR 2(1)
|
N
|
Whether this field is to be displayed or not.
|
DISPLAY_ORDER
|
NUMBER
|
Y
|
--
|
SORT_ORD
|
VARCHAR 2(4)
|
Y
|
--
|
LABEL
|
VARCHAR 2(70)
|
N
|
Represents Display label
|
COMP_MAST_ID
|
NUMBER
|
Y
|
Represents business object id.
|
COMP_DET_ID
|
NUMBER
|
Y
|
Represents display parameter table/struct/scalar id.
|
SEED_FLAG
|
VARCHAR 2(1)
|
Y
|
--
|
AUTHOR,
|
VARCHAR 2(1)
|
Y
|
Created by
|
MANDATORY,
|
VARCHAR 2(1)
|
Y
|
This field is mandatory for business object to function or not
|
Primary Key
|
ID
|
Foreign Key
|
PAGELET_ID,COMP_MAST_ID,COMP_DET_ID
|
Sequence
|
ID
|
Table 9 PNET_PAGELET_DET_ROLE
Table Alias
|
PNET_PAGELET_DET_ROLE
|
Description
|
This table holds the information pertaining for the display parameters based on the user types.
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
PAGELET_DET_ID
|
NUMBER
|
Y
|
Represents pagelet det id
|
PAGELET_ID
|
NUMBER
|
Y
|
Represents the pagelet id
|
PARAM_ROLE
|
VARCHAR 2(30)
|
Y
|
Represents user type either (ex customer/employee)
|
COMP_DET_ID,
|
NUMBER
|
Y
|
Represents comp det id.
|
HIDDEN_FLAG,
|
VARCHAR 2(1)
|
Y
|
This field is mandatory for business object to function or not
|
LABEL
|
VARCHAR 2(70)
|
N
|
Represents Display label
|
Primary Key
|
PAGELET_DET_ID
|
Foreign Key
|
COMP_DET_ID,
|
Sequence
|
|
Table 10 PNET_PAGELET_PARAM
Table Alias
|
PNET_PAGELET_PARAM
|
Description
|
This tables holds the list of edit parameters
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
ID
|
NUMBER
|
N
|
Unique Id
|
PAGELET_ID
|
NUMBER
|
N
|
Represents the pagelet id
|
NAME
|
VARCHAR 2(32)
|
Y
|
Name of the edit parameter
|
DATATYPE
|
VARCHAR 2(70)
|
Y
|
Represents type of data Char, Number, Date
|
PARAM_ROLE
|
VARCHAR 2(30)
|
Y
|
Represents user type either (ex customer/employee)
|
CONDITION
|
VARCHAR 2(30)
|
Y
|
--
|
COMP_MAST_ID
|
NUMBER
|
Y
|
Represents business object id
|
COMP_DET_ID
|
NUMBER
|
Y
|
Represents comp det id
|
LOCAL_FLAG
|
VARCHAR 2(1)
|
N
|
--
|
LOCAL_VAL
|
VARCHAR 2(70)
|
Y
|
--
|
REQUEST_FLAG
|
VARCHAR 2(1)
|
N
|
--
|
LABELNAME
|
VARCHAR 2(32)
|
Y
|
Represents Display label
|
Primary Key
|
ID
|
Foreign Key
|
PAGELET_ID,COMP_MAST_ID,COMP_DET_ID
|
Sequence
|
|
Table 11 PNET_PAGELET_PARAM_ROLE
Table Alias
|
PNET_PAGELET_PARAM_ROLE
|
Description
|
This table holds the information pertaining to the edit display parameters based on user type.
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
PAGELET_PARAM_ID
|
NUMBER
|
N
|
Represents pagelet param id
|
PAGELET_ID
|
NUMBER
|
Y
|
Represents pagelet id
|
PARAM_ROLE
|
VARCHAR 2(30)
|
N
|
Represents param role
|
LOCAL_FLAG
|
VARCHAR 2(1)
|
Y
|
--
|
LOCAL_VAL
|
VARCHAR 2(70)
|
Y
|
--
|
REQUEST_FLAG
|
VARCHAR 2(1)
|
Y
|
--
|
COMP_DET_ID
|
NUMBER
|
Y
|
|
Primary Key
|
None
|
Foreign Key
|
COMP_DET_ID
|
Sequence
|
None
|
Table 12 PNET_ROLE
Table Alias
|
PNET_ROLE
|
Description
|
This table holds the information pertaining to the user types
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
ID
|
NUMBER
|
N
|
Unique id
|
NAME
|
VARCHAR 2(30)
|
Y
|
User type (example EMPLOYEE/CUSTOMER)
|
Primary Key
|
ID
|
Foreign Key
|
None
|
Sequence
|
None
|
Table 13 PNET_SINGLE_SIGN
Table Alias
|
PNET_SINGLE_SIGN
|
Description
|
Holds user credential mapping values.
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
ID
|
NUMBER
|
N
|
Unique Id
|
PORTAL_USERID
|
VARCHAR 2(32)
|
N
|
Represents portal user id
|
APP_INST_ID
|
NUMBER
|
N
|
Represents application instance id
|
TGT_USERNAME
|
VARCHAR 2(30)
|
Y
|
Represents EIS user id value
|
TGT_PASSWORD
|
VARCHAR 2(200)
|
Y
|
Represents EIS password
|
NATIVE_ENABLED_FLAG
|
VARCHAR 2(1)
|
N
|
Represents whether to give permission to native enable or not to EIS
|
TARGET_ENABLED_FLAG
|
VARCHAR 2(1)
|
N
|
Represents whether to give permission to target enable or not to EIS
|
USER_ROLE
|
VARCHAR 2(1)
|
Y
|
Represents user type Customer/Employee
|
ACTIVE_FLAG
|
VARCHAR 2()
|
Y
|
This flag represents whether this mapping is active or not.
|
DEFAULT_CREDENTIAL
|
CHAR (1)
|
Y
|
Represents to use the EIS Instance Credential or not.
|
Primary Key
|
ID
|
Foreign Key
|
APP_INST_ID
|
Sequence
|
ID
|
Table 14 PNET_SRC_APPLICATION
Table Alias
|
PNET_SRC_APPLICATION
|
Description
|
This holds the application instance details.
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
ID
|
NUMBER
|
N
|
Unique Id
|
NAME
|
VARCHAR 2(32)
|
Y
|
EIS Instance application name
|
VERSION
|
VARCHAR 2(32)
|
Y
|
Default value 1.0
|
DESCRIPTION
|
VARCHAR 2(200)
|
Y
|
About the EIS Instance Application
|
NATIVE_URL_TEXT
|
VARCHAR 2(200)
|
Y
|
--
|
APP_TYPE
|
VARCHAR 2(32)
|
Y
|
Represents application type SAP/Siebel
|
Primary Key
|
ID
|
Foreign Key
|
None
|
Sequence
|
None
|
Table 15 PNET_URL_PARAM
Table Alias
|
PNET_URL_PARAM
|
Description
|
This table holds the parameters pertaining to the native drill down.
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
ID
|
NUMBER
|
N
|
Unique Id
|
PAGELET_DET_ID
|
NUMBER
|
N
|
Represents Pagelet id
|
PARAM_NAME
|
VARCHAR 2(30)
|
Y
|
Represents Parameter Name
|
PARAM_TYPE
|
NUMBER
|
Y
|
Represents parameter type
|
PARAM_VALUE_SRC
|
VARCHAR 2(300)
|
Y
|
--
|
PARAM_VALUE
|
VARCHAR 2(300)
|
Y
|
Represents field name in the business object.
|
Primary Key
|
ID
|
Foreign Key
|
PAGELET_DET_ID
|
Sequence
|
|
Table 16 PNET_USER_PARAM_MAP
Table Alias
|
PNET_USER_PARAM_MAP
|
Description
|
This table holds the customer id for the portal user
|
Owner
|
|
Data Element Name
|
Data Type
|
Mandatory
|
Description
|
USER_ID
|
NUMBER
|
N
|
Represents the portal user id
|
APP_ID
|
NUMBER
|
N
|
Represents the EIS Application Id
|
USER_PARAM_ID
|
NUMBER
|
N
|
--
|
VALUE
|
VARCHAR 2(70)
|
Y
|
Represents the customer id in EIS.
|
Primary Key
|
None
|
Foreign Key
|
USER_ID,APP_ID,USER_PARAM_ID,
|
Sequence
|
None
|
Linking Portlets
Inter-portlet communication can be achieved using backing files, but the page flow is the recommended mechanism. This section explains how to use multiple page flows that react to browser events such as forms. To create page flow portlets that communicate with each other, take the following steps:
To Create Portlets that Share Messages:
- Inside the portal Web application, create a portlets directory.
- Within this portlets directory, create two new page flows. (A separate directory will be automatically created for each one).
- Create a portlet for each page flow and place these portlets on a portal.
- In the Portal, click on the second portlet and set the listen to attribute to the instanceLabel of the first portlet. (Open the Portal in Design View, click once on the second portlet and find the properties editor.)
Note: The listenTo attribute is associated with the instanceLabel of the other portlet. You can change the definitionLabel without affecting the listenTo behavior.
- In the .jpf file for the second portlet you can do one of two things.
The first option is to use the same action method signature as in the first page flow. For example, this action definition is from the page flow controller for portlet 2:
/**
* @jpf:action
* @jpf:forward name="listening" path="listening.jsp"
*/
public Forward passString1(portlets.j1.j1Controller.Form form)
{
thePassedText = form.getText();
return new Forward( "listening" );
}
Or you can add a handler for ActionNotFoundException handler. For example, in the page flow controller for portlet 2, make sure the @jpf:catch annotation is defined at the class level:
/**
* @jpf:controller
* @jpf:catch type="ActionNotFoundException" method="doNothing"
*/
And in the same page flow controller, that an action method such as the following is defined:
/**
* @jpf:exception-handler
* @jpf:forward name="current" return-to="currentPage"
*/
protected Forward doNothing( ActionNotFoundException e, String actionName, String message, FormData form )
{
return new Forward( "current" );
}
As you edit the page flow, you can verify the navigation by opening a viewer that will preview the pages without the portal.
- Place the two portlets inside placeholders within your portal.