Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AJAX渲染属性没有';t使用呈现的=";假;成分_Ajax_Jsf 2_Java Ee 6_Facelets_Show Hide - Fatal编程技术网

AJAX渲染属性没有';t使用呈现的=";假;成分

AJAX渲染属性没有';t使用呈现的=";假;成分,ajax,jsf-2,java-ee-6,facelets,show-hide,Ajax,Jsf 2,Java Ee 6,Facelets,Show Hide,我有一个组件,我想在用户点击命令按钮后显示/隐藏该组件 是这样的: <h:commandButton id="showButton" value="#{bean.wasPressed ? 'Hide' : 'Show'}"> <f:ajax listener="#{bean.toggle()}" render="explanation showButton" /> </h:commandButton> 及 bean.toggle()只需将wa

我有一个组件,我想在用户点击
命令按钮后显示/隐藏该组件

是这样的:

<h:commandButton id="showButton" value="#{bean.wasPressed ? 'Hide' : 'Show'}">
    <f:ajax listener="#{bean.toggle()}" render="explanation showButton" />
</h:commandButton>


bean.toggle()
只需将
wasPressed
属性适当地设置为true或false。我正在使用

问题是我的按钮的
render
属性的值。它明确地包括两个方面:
解释
显示按钮

只要
showButton
始终存在(它只会更改其标签),则只有在按下
属性时,
解释才会存在。否则它会说:

格式错误的Dxml:在更新期间:找不到解释

我怎样才能解决这个问题

我不希望恢复到在源代码中隐藏元素,因此我不希望使用任何jQuery切换(-)或任何使用
style=“display:none”
或任何此类内容隐藏元素的方式


在JSF 2.1中,它甚至可以实现吗?

您不能更新未呈现的元素,rendered=false“是JSF从DOM树中删除元素的方法


它不像css显示:无或可见性:隐藏使用id向该panelGroup添加包装并引用它。。。。您不能参考未渲染的jsf elememt,它的工作方式很有魅力,谢谢!你能补充一下这个问题的答案吗?这样我就可以接受了?
<h:panelGroup id="explanation" rendered="#{bean.wasPressed}">
    <h:outputText value="something" />
</h:panelGroup>
<h:commandButton id="showButton" value="#{bean.wasPressed ? 'Hide' : 'Show'}">
    <f:ajax listener="#{bean.toggle()}" render="explanationWrapper showButton" />
</h:commandButton>


<h:panelGroup id="explanationWrapper">
    <h:panelGroup id="explanation" rendered="#{bean.wasPressed}">
        <h:outputText value="something" />
    </h:panelGroup>
</h:panelGroup>