为了账号安全,请及时绑定邮箱和手机立即绑定

AJAX更新/呈现不适用于已呈现属性的组件

AJAX更新/呈现不适用于已呈现属性的组件

慕哥9229398 2019-06-17 14:41:11
AJAX更新/呈现不适用于已呈现属性的组件我正在尝试Ajax更新一个有条件呈现的组件。<h:form>     ...    <h:commandButton value="Login" action="#{login.submit}">         <f:ajax execute="@form" render=":text" />     </h:commandButton></h:form><h:outputText id="text" value="You're logged in!" rendered="#{not empty user}" />然而,这是行不通的。我可以保证#{user}实际上是可用的。这是如何造成的,我如何解决呢?
查看完整描述

1 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

如果组件本身不首先呈现,则不可能通过Ajax重新呈现(更新)组件。在Ajax重新呈现组件之前,必须始终呈现组件。AJAX正在使用JavaScriptdocument.getElementById()若要查找需要更新的组件,请执行以下操作。但是,如果JSF没有首先呈现组件,那么JavaScript就找不到任何要更新的内容。

解决方案是简单地引用始终呈现的父组件。

<h:form>
    ...    <h:commandButton ...>
        <f:ajax ... render=":text" />
    </h:commandButton></h:form><h:panelGroup id="text">
    <h:outputText ... rendered="#{not empty user}" /></h:panelGroup>

另见:


查看完整回答
反对 回复 2019-06-17
  • 1 回答
  • 0 关注
  • 425 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号