不能在服务器上运行包含未绑定 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“差别处理程序”总是试图向父代(而不是容器)添加新对象。
这一问题的变通方法是创建要进行更新的关系记录列表,然后将新行作为该表的一层关系来添加。例如,如果希望在 ORDERS 表(由 CUSTOMER 所有)中添加一行,则不要创建关系 CUSTOMER -> ORDERS 然后在 ORDERS 中添加一行,而是创建关系记录列表 ORDERS 并在 ORDERS 中添加一行。
如果列中具有输入组件的 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 转换器,而另一个 inputText 在使用 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 轴上描绘一系列非常接近的值时,使用缺省格式会降低精度。降低精度可能导致值变得重复。为避免此问题,选择适当的定制数字格式而不使用缺省值。
要解决此问题,增加图的大小。
下列情况下未显示数据网格的标题和脚注:
- 当数据网格绑定至空的关系列表时
- 当按计划将各项添加至数据网格并且项数超出网格高度时
将 Web Service 与客户机放在两台不同服务器上时,Web Service 调用会失败。没有已知的变通方法,尽管 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 和指向页面资源(CSS 和图像)的相对路径中使用 Faces 前缀将导致此问题。有两种方法可解决此问题:
1)对页面资源使用标准路径名称。
2)在指向 Faces 页面的 URL 中使用 .faces 扩展名而不是 faces/ 前缀。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。可以同时进行这两种配置(例如,可将 .page 用作扩展名)。
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
当数据网格绑定至从只有一列的关系记录列表创建的客户机数据时,生成的绑定是不正确的。例如,将生成 #{pc_Index1.surveys[0].NAME} 而不是正确的绑定 {pc_Index1.surveys}。变通方法是手工编辑 JSP 源代码以除去额外索引和列名(如以上示例中所示)。
发生此问题的原因是构建工作空间操作没有完成。要除去所有错误,转至“项目”菜单并选择清除...。然后,选择清除 FacesClientTutorial 项目。一旦完成了清除和重建操作,所有错误就都应该消失。
某些较早版本的联机帮助主题“迁移带有 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)页面在提交时丢失了内容。这可能与维护页面状态的方式和处理针对页面资源(如 CCS 和图像文件)的请求的方式有关,这些资源是使用相对路径(如 theme/stylesheet.css)指定的。要解决此问题,指向 JSF 页面的 URL 应使用 .faces 扩展名选项。例如,指向 JSF 页面 myPage.jsp 的 URL 应为 /MyWebApp/myPage.faces。此扩展名是在项目 web.xml 文件中定义的。另一选择是将状态保存在客户机中。