更新内容

在 Java™ 窗口小部件库(JWL)面板标记中,此标记定义面板的备用内容。在将页面装入浏览器后,可以通过异步方式检索此内容。此标记用来根据用户执行的操作动态地修改 Web 页面内容,而不必替换/重新显示该页面。例如,回答问题后,适合于所提供答案的内容会插入到页面中。

每当对组件父面板运行 JWL GET 操作时,例如,作为按钮单击结果运行此操作时,客户机将请求获取面板的备用内容。如果有可用的备用内容,新内容将替换现有的面板内容。GET 并不会替换包含该面板的页面,而是,此标记允许替换该页面的部分内容。将从提供原始内容的 JSP 检索修改后的内容。此页面的服务器生命周期副本与客户端页面将保持同步。将使用 HTTP POST 请求操作来检索新页面内容,这与使用 HTTP GET 请求来执行同一操作的 ajaxRefreshRequest 不同。包含面板的表单内容将作为请求的一部分来发布,这样,表单中的值可供服务器代码用于计算要放入此面板中的新内容。

注: 如果您使用的是本产品的以前版本,则当将 ajaxRefreshRequestajaxRefreshSubmit 标记添加至 JSP 时,必须将以下内容添加至 JSF 配置文件(通常是 faces-config.xml):
<factory>
        <faces-context-factory>
            com.ibm.faces.context.AjaxFacesContextFactory
        </faces-context-factory>
        <render-kit-factory>
            com.ibm.faces.renderkit.AjaxRenderKitFactory
        </render-kit-factory>
    </factory>
注: 数据树控件的 <odc:treeNodeAttr> 标记在与 SDO 数据和 WDO 数据绑定时,使用不同的 className 属性值。在将项目从使用 WDO 的服务器(例如 WebSphere® Application Server 5.1)迁移至使用 SDO 的服务器(例如 WebSphere Application Server 6.1)时,解决此问题的最简单方法是删除并重新创建所有数据树控件。
限制: 要从 HTML 文件链接到 Faces JSP 文件,请在 HTML 页面中将所引用的文件名由 <filename>.jsp 更改为 <filename>.faces。请不要将实际的 Faces JSP 文件扩展名重命名。如果在 HTML 文件中在将引用的链接更改为 .faces 扩展名,则链接构建器将无法工作。
要使用此标记:
  1. 在要动态计算并刷新内容的页面中放置一个面板。在此面板中添加 hx:ajaxRefreshRequest 标记:
    <h:panelGroup id="panel1">
            <hx:ajaxRefreshSubmit onerror="return doError(this, event);"/>
        </h:panelGroup>
  2. 在此面板中放置以下标记:根据条件表达式来呈示的标记、值为表达式的标记或者其他方面根据某个表达式的不同而有所变化的标记。例如:
    <h:outputText id="otext2" escape="false"
    rendered='#{pc_JWL30.aBean.aString1 != null && pc_JWL30.aBean.aString1 != ""}'
        value='You typed:<b> #{pc_JWL30.aBean.aString1}</b>
    ' />
  3. 确保条件表达式中使用的值与此面板在同一个表单中。在作出请求时,这些条件表达式将提交至服务器,随后生命周期就会使用它们的当前值来更新。例如:
    <h:form id="panel1">
            <h:inputText styleClass="inputText" id="text0"
    value="#{pc_JWL30.aBean.aString1}"/>
            <h:panelGroup id="panel1"> ...
  4. 标识哪一项用户操作会导致将新内容放入页面,并为调用该请求的标记/事件添加行为。例如:
    <hx:commandExButton type="button" value="Enter"
    id="button1">
            <hx:behavior event="onclick" behaviorAction="get;stop"
    targetAction="panel1"/>
        </hx:commandExButton>

允许作为子标记

此标记可用作下列标记的子代
  • <hx:panelActionbar>
  • <hx:panelBox>
  • <hx:panelDialog>
  • <hx:panelFormBox>
  • <h:panelGrid>
  • <h:panelGroup>
  • <hx:panelLayout>
  • <hx:panelMenu>
  • <hx:panelSection>

允许的内容

此标记将重建面板标记(如上所列的允许标记)的内容。正在重建的面板可包含任何 JSF 标记,下列标记除外
  • <hx:scriptCollector>
  • <f:subview>
  • <f:view>
  • <hx:viewFragment>
  • <hx:inputHelperFormTracker>
  • <hx:inputHelperSetFocus>
  • <r:inputRichText>
  • <odc:tabbedPanel>
  • <odc:bfPanel>
  • <odc:buttonPanel>
  • <odc:tree>
  • <odc:treeNodeAttr>
  • <odc:graphDraw>
  • <odc:graphDrawData>
  • <odc:graphDrawDataSeries>
  • <odc:graphDrawLabels>

属性视图和全部属性视图

组件的“属性”视图显示可以对组件设置的最常见属性集,并且根据组件的不同,您还可以看到用于添加控件、操作或其他组件的选项。要打开“属性”视图,请单击窗口 > 显示视图 > 属性

下表列示了“更新内容”组件的常见属性。

“全部属性”视图显示可以对组件设置的全部属性的表,包含可以从“属性”视图访问的那些属性。要切换至“全部属性”视图,请单击“属性”视图右上角的全部属性图标 “全部属性”图标

表 1. 更新内容组件属性

属性名称

描述

binding

该表达式将组件的实例(通常为用户界面组件)与 Bean 属性(通常在备份文件中)绑定。

id

对组件指定一个名称。它在 JSP 内应该是唯一名称。

inProgress

属性尚不可用。

rendered

可设置为 true 或 false:
  • false - 将不会在运行时向浏览器呈示组件。
  • true - 将呈示组件。这是缺省值。

target

指定当单击超链接时应将页面装入至的框架集中的目标框架:
  • 新窗口
  • 同一框架
  • 父框架
  • 全屏

title

指定标题文本,它在运行时以工具提示的形式显示在浏览器中。如果未指定备用文本,则浏览器将使用标题文本作为组件的备用文本。

oncomplete

如果请求成功,则替换面板的内容后,将执行此 JavaScript™ 函数。此函数没有任何有意义的参数。

onerror

如果提供,则当 onblur 触发且字段值验证失败时,将执行 JavaScript 函数。该函数在操作执行之前执行。如果该函数返回 false,则不运行操作并中止事件处理(如果 DOM 中止事件处理)。

onstart

当行为开始执行时,将执行此 JavaScript 函数。此函数没有任何有意义的参数。如果它返回 false,则将中止执行。此函数可以与 oncomplete 配合使用来定制执行请求过程中所显示的内容。


反馈