您不能在服务器上运行包含未绑定 Faces Client 组件的 Faces JSP 文件。您必须绑定 Faces Client 组件到客户机数据对象,以便能够在服务器上运行。
此问题是由内部 WDO 代码中的 NullPointerExceptions 造成的。可通过将数据库中的空值替换为缺省值或将服务器升级至 WAS 6.0 来变通这一问题。如果进行升级,请确保遵循《迁移指南》中的“随 Faces Client 组件迁移 JavaServer Faces 资源”一节中的指示信息。
注意:由于同一原因,包含从空的关系记录创建的客户机数据的 Faces JSP 不能在 WAS 5.1 上运行。这一问题没有简单容易的变通方法。
如果在创建“设置已选的对象作为目标组件的根”事件处理程序片段后,将该事件处理程序的目标组件重命名,JavaScript 将不正确。要变通此问题,请删除该片段并重新创建它。
实现文件上载和下载功能的 Faces 组件在 portlet 中不受支持。这些 Faces 组件包括:
- 文件上载
- 图像、链接和媒体播放器(在绑定至 BLOB 或 byte[] 数据源时)
在将行添加到绑定到关系记录列表(在数据图中深度为两层或更多层)的数据网格后,当提交 Faces JSP 文件时,您收到 java.lang.IllegalArgumentException:“CUSTOMERS”的“CUSTOMERS_ORDERS”功能不是容器。
这是 Faces Client 处理更新的方式的局限性。在 SDO 中,所有关系都包含(containment=true)在“DatagraphRoot”中,并且每个关系都引用(containment=false)其它包含在根中的关系。Faces Client DiffHandler 总是试图添加新对象到“父级”而不是“容器”中。
要变通这个问题,可以创建作为一级关系以新行更新的关系记录列表。例如,如果您想要添加行到 ORDERS 表(由 CUSTOMER 所有),而不是创建关系 CUSTOMER -> ORDERS 然后添加行到 ORDERS,您将要创建关系记录列表 ORDERS 并添加行到 ORDERS。
如果您有嵌套在另一个 dataTable(例如,行的属性是一个集合)中的 dataTable,而且另一个 dataTable 在列中有输入组件,则数据模型将不能正确更新。
将数据放入从页面模板派生的 Faces JSP 文件时,生成的标记的位置可能不正确。如果模板的页体中有多个内容区域,则从“页数据”视图或“调色板”上的“数据抽屉”拖动数据总是会在第一个内容区域中生成新的标记。如果期望的目标不在该内容区域中,请切换到源代码模式。然后,将生成的源代码剪切并粘贴至正确的位置。确保选中了所有新标记(如果有外层的 h:form 标记,也包括它),并确保粘贴位置在期望内容区域的 hx:scriptCollector 标记中的某个位置。
如果使用的项目最初是使用 WSAD 5.1.2 开发的,系统可能会提示用户迁移项目中的 Faces 资源。如果选择“是”,系统会将 Faces 运行时自动更新到最新级别;然而,如果 WDO 是用于数据访问的,则需要手工执行补充配置:
- 在原始项目中创建新的临时 Faces JSP 文件。(单击文件 > 新建 > Faces JSP 文件。要获取帮助,请参阅联机帮助。)
- 将选用板上的“数据”抽屉中的关系记录组件拖至页面。选择重用现有元数据并选择列示的任何一个现有 WDO .xml 文件。这一过程生成继续在此项目中使用 WDO 所需的任何配置。
- 删除临时 JSP 文件。
有关更多信息,请参阅产品迁移指南。
当用户的页面上存在多个 inputText 字段时,inputText 字段的验证页面未能正确更新。如果 inputText 字段具有不同的转换器子标记,就会出现此问题。例如,如果一个 inputText 字段正使用 convertNumber 转换器而另一个具有一个 ConvertDateTime 转换器,则在标记间切换时将无法正确刷新验证页面。有两个可行的变通方法:切换到源代码模式并单击子验证或者帮助程序标记(此时页面将会刷新)。另一个变通方法是关闭并重新打开 JSP。
为 EGL 客户机数据生成的差别处理程序用于引用嵌套类型的语法不正确。要变通此问题,请编辑客户机数据介体类,以使用正确的语法。使用句点(.)代替美元符号($)。例如,如果您有以下代码:
if (_Root instanceof pagehandlers.overdueaccounts$COMPANYNAME)
将它更改为:if (_Root instanceof pagehandlers.overdueaccounts.COMPANYNAME)
当您创建重新使用已存在的 SDO/WDO 客户机数据的客户机数据时,请确保重新使用了 WDO/SDO 元数据文件以及模型名称。当您从“页数据”视图中创建 WDO/SDO 时,请选择“从现有的记录或记录列表中重新使用元数据定义。”接着,浏览并为您正在重新使用的 SDO 选择元数据文件。
要解决此问题,请确保所有 JSF 和 JSF 客户机控件在同一门户网站页面上使用的所有 portlet 中具有唯一标识。如果门户网站页面使用具有重复标识的未知 portlet,则可能发生冲突。建议包含 JSP 名称作为标识的一部分以确保标识的唯一性。
这一问题没有已知的变通方法。建议尽量少使用标注以避免混乱。
没有变通方法。不要在门户网站的树形视图中使用定制打开和关闭图标。
当在 y 轴上绘制一系列结束值时,您可能会丢失缺省格式的精度。这种精度的缺少可能会造成值的重复。为避免此问题,请选择恰当的客户号码格式并且不要使用缺省值。
要变通此问题,请增大图形的大小。
数据网格的页眉和页脚在以下场景中不显示:
- 当数据网格绑定到空的关系列表时
- 当按计划将各项添加至数据网格并且项数超出网格高度时
将 webservice 和客户机放在两台不同的服务器上进行管理时,WebService 调用会失败。没有已知的变通方法,尽管 Macromedia Web 站点已经为这个跨域问题公布了一些解决方法。建议将 Web Service 与客户机放在同一服务器上。
要从项目中除去这些警告,请右键单击 javasource 文件夹、项目或者带有警告的包。接着,在上下文菜单中选择 源代码 > 组织导入。
您在将 Faces Client 组件放入在同一页面上包含多重客户机数据的页面时可能会接收到此错误。要变通此问题,请切换到 JSP 的“源代码”视图,并且将所有 <odc:clientData> 标记移动到 <h:form> 标记正下方。
如果将树组件放到页面上或将树组件的源代码剪切并粘贴到页面上,则 <odc:tree> 标记偶然可能会带有 <p> 标记表示父代。这将导致树组件不正确地呈示在生成的 HTML 页面上。要解决此问题,删除 <odc:tree> 标记周围的 <p></p> 标记。
不能将“缩略图”视图或“项目资源管理器”视图中的图像文件放到选项卡式面板中。要将图像放到面板中,请从“选用板”视图的“HTML 标记”抽屉中拖放某个图像,然后选择想要放下的图像文件。
在遵循迁移指南中关于为包含 Faces Client 组件的项目重新设定服务器目标(从 WebSphere Application Server V5.1 到 V6.0)的步骤后,可能会出现“断开的链接”警告。如果在 WebSphere Application Server V6.0 中运行页面时出现这些警告或者页面未正确显示,则关闭 Web 项目然后重新打开它。
使用内部浏览器在服务器上运行丰富文本编辑器时,它会以形同只读的形式运行。在页面初次装入或在提交页面到服务器后可能会发生这个问题。使用外部浏览器可以变通这个问题。
产生这个问题的原因是,在到 Faces 页面的 URL 以及到页面资源的相对路径中使用了 Faces 前缀(css 和 images)。有两个变通此问题的方法:
1)使用到页面资源的标准路径名称。
2)使用到 Faces 页面的带有 .faces 扩展名但不带 faces/ 前缀的 URL。Faces 页面必须由 Faces servlet 处理。在项目 web.xml 文件中,缺省情况下向此 faces servlet 添加了两个映射。
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping><servlet-mapping>
Faces 文件夹和带有 Faces 扩展名的文件都不实际存在。您只需要将它们作为 Faces 页面 URL 的一部分。要找到 page1.jsp,您可以使用 /faces/page1.jsp 或者 /page1.faces。这两个都可以配置(例如,您可以使用 .pages 作为扩展名)。
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
当数据网格绑定到由只有一列的关系记录列表创建的客户机数据时,所生成的绑定是不正确的。例如:生成了 #{pc_Index1.surveys[0].NAME},而正确的绑定为 {pc_Index1.surveys}。变通方法是手工编辑 JSP 源代码以除去多余的索引和列名称(如以上示例所示)。
帮助主题的一些早期版本中,“随 Faces Client 组件迁移 JavaServer Faces 资源”可能在以下项中缺少信息:
如果您缺少此信息,请参阅《迁移指南》的 HTML 版本,它位于第一张 CD 的根目录或电子映像的 disk1/migrate.html 中。
- 将包含 Faces Client 组件的项目的目标服务器从 WebSphere Application Server V5.1 更改为 V6.0 时可能会产生两个问题:
- 已生成的客户机数据介体类将不再编译。
- 在将项目的目标服务器更改为 WebSphere Application Server V6.0 之后,绑定到 WDO 的树形视图 Faces Client 组件未能在服务器上运行。
- 有关在 Linux 平台或非英语语言环境中工作的信息。
JavaServer Face(JSF)页面似乎在提交时丢失内容的地方出现问题。这可能与如何为页面保持状态以及如何为以相对路径(例如 theme/stylesheet.css)指定的页面资源(例如 css 和图像文件)处理请求相关。要变通此问题,到 JSF 页面的 URL 应该使用 .faces 扩展名选项。例如,到 JSF 页面 myPage.jsp 的 URL 应该为 /MyWebApp/myPages.faces。此扩展名在项目 web.xml 文件中定义。另一个选项是选择在客户机中保存状态