Art*_*lev 46 jsf rendered-attribute jsf-2 conditional-rendering ajax-update
我正在尝试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}" />
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.我可以保证这#{user}
实际上是可用的.这是怎么造成的,我该如何解决?
Bal*_*usC 92
如果组件本身未在第一时间呈现,则无法通过ajax重新呈现(更新)组件.必须始终在ajax重新呈现它之前呈现该组件.Ajax使用JavaScript document.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>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
46753 次 |
最近记录: |