JavaServer Faces tools - release notes


1.0 Limitations
   1.1 Faces Client: Faces JSP having unbound faces client components does not run on server
   1.2 Faces Client: Faces JSP files with Faces Client data do not run on WAS 5.1if they were created from a WDO containing null values for integer, float, boolean, or char data types
   1.3 Faces Client: Renaming the Target components ID after inserting a "Set selected object as root in target component" event handler
   1.4 File upload and download components are not supported in portlets
   1.5 Faces Client: Adding a row to datagrid bound to a relational record list two or more levels deep in the datagraph fails on server
   1.6 Input Fields in nested dataTable do not work correctly
2.0 Known problems
   2.1 Problem dropping data into Faces JSP file derived from page template
   2.2 Faces resource migration does not update SDO configuration
   2.3 Validation page does not update correctly on inputText
   2.4 Faces Client: Compile Error after creating client data for EGL: "the nested type .. cannot be referenced using it's binary name"
   2.5 Faces Client: Using the same model name to share Faces client data model for WDO/SDO page data across Portlets does not always work
   2.6 Faces Client: Faces Client controls events do not work correctly in Portal because of missing viewId
   2.7 Faces Client: Pie chart labels and title overlap in graphdraw.
   2.8 Faces Client: Custom open and close icons in Tree view are not displayed in portal
   2.9 Faces Client: Graphdraw runtime - some values are repeated in y-axis scale
   2.10 Faces Client: X-axis label characters may be cut off in GraphDraw
   2.11 Faces Client: Header/Footer bar not added to datagrid after having added items to it programmatically
   2.12 Faces Client: Webservice invocation fails across the network
   2.13 Faces Client: Warnings appear in Problems view when create client data (unused imported classes warnings)
   2.14 Faces Client: Workaround for "Faces Client component cannot be dropped before clientData tag" error message
   2.15 Faces Client: Dropping a Tree View into the source code
   2.16 Dropping an image file into a Panels - Tabbed component
   2.17 Faces Client: Broken Link warnings may appear after following steps in migration guide for resolving problems resulting from retargeting to WAS 6.0
   2.18 Rich Text Editor cannot be edited when using internal browser
   2.19 Lost page state - Form will not submit
   2.20 Faces Client: Datagrid bound to a relational record list with only one column fails to run on server
   2.21 Faces Client: After you import the Faces Client Sample, the problems view shows many errors
   2.22 Faces Client: Online help topic "Migrating JavaServer Faces resources with Faces Client Components" may be missing information
   2.23 JavaServer Face page appears to lose content on submit

1.0 Limitations

1.1 Faces Client: Faces JSP having unbound faces client components does not run on server

You cannot run a Faces JSP file that contains unbound Faces Client components on the server. You must bind Faces Client components to a client data object to be able to run on server.

1.2 Faces Client: Faces JSP files with Faces Client data do not run on WAS 5.1if they were created from a WDO containing null values for integer, float, boolean, or char data types

This problem is caused by NullPointerExceptions in the internal WDO code. To work around this problem, either replace the null value in the database with a default value or upgrade your server to WAS 6.0. If upgrading, be sure to follow the section in the Migration guide titled, "Migrating JavaServer Faces resources with Faces Client Components."

Note: Faces JSP containing client data created from an empty relational record do not run on WAS 5.1 for the same reason. There is no easy workaround for this problem.

1.3 Faces Client: Renaming the Target components ID after inserting a "Set selected object as root in target component" event handler

If the target components of a "Set selected object as root in target component" event handler are renamed after the event handler snippet is created, the JavaScript will be incorrect. To work around this problem, delete the snippet and recreate it.

1.4 File upload and download components are not supported in portlets

Faces components that implement file upload and download functionality are not supported in portlets. These Faces components include:

1.5 Faces Client: Adding a row to datagrid bound to a relational record list two or more levels deep in the datagraph fails on server

When you submit a Faces JSP file after adding a row to a datagrid bound to a relational record list which is two or more levels deep in a datagraph, you get a java.lang.IllegalArgumentException: The feature 'CUSTOMERS_ORDERS' of 'CUSTOMERS' isn't a containment.

This is a limitation in the way Faces client handles updates. In SDO, all relations are contained (containment=true) within the "DatagraphRoot" and each relation references (containment=false) other relations contained within the root. The faces client DiffHandlers always try to add the new objects to the "parent" rather than to the "container".

The workaround for this problem is to create the relational record list to be updated with new rows as a level one relation. For example, if you wish to add a row into an ORDERS table, which is owned by a CUSTOMER, instead of creating a relation CUSTOMER -> ORDERS and then adding a row into ORDERS, you would create a relational record list ORDERS and add a row into ORDERS.

1.6 Input Fields in nested dataTable do not work correctly

If you have a dataTable nested inside of a dataTable (for example, a property of the row is a collection) that has input components in the column, the data model will not update correctly.

2.0 Known problems

2.1 Problem dropping data into Faces JSP file derived from page template

The location of generated tags may be incorrect when you drop data onto a Faces JSP file that is derived from a page template. If the template has more than one content area within the page body, then dropping data from the Page Data View or Data drawer on the Palette will always generate new tags into the first content area. If the desired target was not in that content area, switch to source mode. Then, cut and paste the generated source to the correct location. Make sure all the new tags are selected, including a surrounding h:form tag if one is present, and also ensure that the paste location is somewhere inside a hx:scriptCollector tag in the desired content area.

2.2 Faces resource migration does not update SDO configuration

When working with a project originally developed using WSAD 5.1.2 the user may be prompted to migrate Faces resources in the project. If the user responds YES, the Faces runtime is automatically updated to the latest levels; however, if WDO was used for data access, additional configuration needs to be performed manually:

  1. Create a new temporary Faces JSP file in the original project. (Click File > New > Faces JSP File. Refer to the on-line help for assistance.)
  2. Drag a relational record component from the Data drawer on the palette to the page. Choose to reuse existing metadata and select any of the existing WDO .xml files that are listed. This process generates any necessary configuration to continue using WDO in this project.
  3. Delete the temporary JSP file.

For more information refer to the product Migration Guide.

2.3 Validation page does not update correctly on inputText

The validation page of the inputText field may not update correctly when a user has multiple inputText fields on a page. This problem occurs if the inputText fields have different converter sub-tags. For example, if one inputText field is using a convertNumber converter and the other has a convertDateTime converter, the validation page will not refresh correctly when switching between tags. There are two possible workarounds: Switch to source mode and click on the child validation or helper tag (at this point the page will refresh). The other workaround is to close and reopen the JSP.

2.4 Faces Client: Compile Error after creating client data for EGL: "the nested type .. cannot be referenced using it's binary name"

The DiffHandlers generated for EGL client data have incorrect syntax for referencing nested types. To work around this problem, edit the client-data mediator classes to use the correct syntax. Use a period (.) instead of a dollar sign ($). For example, if you have code such as:

if (_Root instanceof pagehandlers.overdueaccounts$COMPANYNAME)

change it to:

if (_Root instanceof pagehandlers.overdueaccounts.COMPANYNAME)

2.5 Faces Client: Using the same model name to share Faces client data model for WDO/SDO page data across Portlets does not always work

When you create client data that reuses existing SDO/WDO client data, make sure to reuse the WDO/SDO metadata file and the model name. When you create the WDO/SDO from the Page Data view, select "Reuse metadata definition from an existing record or record list." Then, browse and select the metadata file for the SDO you are reusing.

2.6 Faces Client: Faces Client controls events do not work correctly in Portal because of missing viewId

To fix this problem, make sure all JSF and JSF client controls have unique IDs across all the portlets used on the same portal page. Conflicts are possible if the portal page uses unknown portlets with duplicate IDs. It is suggested that you include the JSP name as part of the ID to ensure that the ID is unique.

2.7 Faces Client: Pie chart labels and title overlap in graphdraw.

There is no known workaround for this problem. It is suggested that you minimize the use of labels to avoid cluttering.

2.8 Faces Client: Custom open and close icons in Tree view are not displayed in portal

There is no workaround. Do not use custom open and close icons in tree view in portal.

2.9 Faces Client: Graphdraw runtime - some values are repeated in y-axis scale

You may lose precision with default formatting when plotting a series of close values on the y-axis. This lack of precision can cause values to be repeated. To avoid this problem, choose appropriate custom number formatting and do not use the default.

2.10 Faces Client: X-axis label characters may be cut off in GraphDraw

To work around this problem, increase the size of the graph.

2.11 Faces Client: Header/Footer bar not added to datagrid after having added items to it programmatically

The header and footer for the datagrid are not displayed in the following scenarios:

  1. When the datagrid is bound to an empty relational list
  2. When adding items programmatically to the datagrid and the number of items exceeds the height of the datagrid

2.12 Faces Client: Webservice invocation fails across the network

The Webservice invocation fails when you host the webservice and the client on two different server machines. There is no known workaround, although the Macromedia Web site has posted some solutions for this cross-domain problem. It is suggested that you host both the Webservice server and the Client on the same server.

2.13 Faces Client: Warnings appear in Problems view when create client data (unused imported classes warnings)

To remove these warnings from your project, right-click either the javasource folder, your project, or the packages with the warnings. Then, select Source > Organize imports from the context menu.

2.14 Faces Client: Workaround for "Faces Client component cannot be dropped before clientData tag" error message

You may receive this error when you drop a Faces Client component to a page that contains multiple client data on the same page. To work around this problem, switch to the Source View for the JSP and move all the <odc:clientData> tags immediately below the <h:form> tag.

2.15 Faces Client: Dropping a Tree View into the source code

If you drop a tree component to the page or cut and paste the source for the tree component on the page, the <odc:tree> tag may accidentally have a <p> tag as its parent. This will cause the tree component to be rendered incorrectly on the resulting HTML page. To workaround this problem, delete the <p></p> tags surrounding the <odc:tree> tag.

2.16 Dropping an image file into a Panels - Tabbed component

You cannot drop an image file into a tabbed panel from the Thumbnails view or the Project Explorer view. To place an image inside the panel, drag and drop an Image from the HTML Tags drawer of the Palette view, and then select the image file you want to drop.

2.17 Faces Client: Broken Link warnings may appear after following steps in migration guide for resolving problems resulting from retargeting to WAS 6.0

You may receive broken link warnings after you follow steps in the migration guide for retargetting servers (from WebSphere Application Server V5.1 to V6.0) for projects containing Faces Client components. If you receive these warnings or if your pages do not display correctly when you run them on the WebSphere Application Server v6.0, close your Web project and then reopen it.

2.18 Rich Text Editor cannot be edited when using internal browser

The rich text editor behaves as if it is read-only when it is run on server using the internal browser. This problem might occur when the page is loaded initially or after submitting a page to the server. Use an external browser to work around this problem.

2.19 Lost page state - Form will not submit

This problem results from using the Faces prefix in the URL to Faces pages and relative paths to page resources (css and images). You can work around this problem in two ways:

1) Use fully qualified path names to page resouces.

2) Use URLs to Faces pages that have the .faces extension and not the faces/ prefix. Faces pages must be handled by the Faces servlet. In the project web.xml file, two mappings are added to this faces servlet by default.

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>

Neither the Faces folder nor the file with a Faces extension actually exist. You just need to make them part of the Faces page URL. To address page1.jsp, you can use /faces/page1.jsp or /page1.faces. Both of these can be configured (for example, you can use .page as the extension).

2.20 Faces Client: Datagrid bound to a relational record list with only one column fails to run on server

When a datagrid is bound to client data created from a relational record list with only one column, the binding generated is incorrect. For example: #{pc_Index1.surveys[0].NAME} is generated instead of the correct binding {pc_Index1.surveys}. The workaround is to edit the JSP source manually to remove the extra index and the column name (as shown in the example above).

2.21 Faces Client: After you import the Faces Client Sample, the problems view shows many errors

This problem occurs because the workspace building operation is not complete. To remove all the errors, go to the Project menu and select Clean.... Then, choose to clean the FacesClientTutorial project. Once the clean is done and the rebuiling operation finishes, all the errors should go away.

2.22 Faces Client: Online help topic "Migrating JavaServer Faces resources with Faces Client Components" may be missing information

Some early versions of the help topic, "Migrating JavaServer Faces resources with Faces Client Components," may be missing information on the following items:

If you are missing this information, refer to the the HTML version of the Migration Guide, which is located at root of the first CD or under disk1/migrate.html of the electronic images.

2.23 JavaServer Face page appears to lose content on submit

There is a problem where JavaServer Face (JSF) pages appear to lose content on submit. This could have to do with how state is maintained for the page and how requests are handled for page resources (e.g. css and image files) that are specified with a relative path (e.g. theme/stylesheet.css). To work around this problem URLs to JSF pages should use the .faces extension option. For example the URL to the JSF page myPage.jsp would be /MyWebApp/myPage.faces. This extension is defined in the project web.xml file. Another option is to elect to save state in the client

Return to the main readme file