0
Как можно динамически отображать или скрывать панель?Почему визуализация не работает на панели
Приведенный ниже пример, когда я нажимаю btn-1
, затем panel-2
показывает и panel-1
шкуры. Но когда я нажимаю btn-2
, ничего не происходит.
ManagedBean
@ManagedBean
@ViewScoped
public class SampleController implements Serializable {
private Boolean showPanel;
public void button1() {
showPanel = Boolean.FALSE;
}
public void button2() {
showPanel = Boolean.TRUE;
}
public Boolean showPanel1(){
return showPanel;
}
public Boolean showPanel2(){
return ! showPanel;
}
}
XHTML
<h:form id="form">
<h:panelGroup id="container-panel-1">
<h:panelGroup id="panel-1" rendered="#{sampleController.showPanel1()}">
<p:commandButton id="btn-1"
actionListener="#{sampleController.button1}"
update=":form:container-panel-1, :form:container-panel-2" />
</h:panelGroup>
</h:panelGroup>
<h:panelGroup id="container-panel-2">
<h:panelGroup id="panel-2" rendered="#{sampleController.showPanel2()}">
<p:commandButton id="btn-2"
actionListener="#{sampleController.button2}"
update=":form:container-panel-1, :form:container-panel-2" />
</h:panelGroup>
</h:panelGroup>
</h:form>
Я надеюсь, что вы можете помочь мне с этим.
Спасибо, Bell
Данный код бросает NPE на 'showPanel2()' , Как только вы исправите это, используя 'boolean' вместо' Boolean', он работает для меня. Причина вашей проблемы не видна в представленной до сих пор информации. Мое лучшее предположение заключалось в том, что вы импортировали '@ ViewScoped' из неправильного пакета, что привело к тому, что область видимости управляемого JSF по умолчанию была' @ RequestScoped', на которой затем был указан пункт № 5 http://stackoverflow.com/questions/2118656/commandlink -commandbutton-ajax-backing-bean-action-listenener-method-not-calledoked/2120183 # 2120183. – BalusC
Здравствуйте, BalusC, я меняю 'Boolean' на' boolean' и проверял пакет, который я использовал, это 'import javax.faces.bean.ViewScoped;'. Все еще ничего не происходит, когда я нажимаю кнопку 2. Где вы видели Исключение? Я не вижу никаких исключений в консоли. Спасибо – bell
Если вы не видите исключения и все еще имеете описанную проблему, тогда у вас, вероятно, будет большая проблема: серьезно запутанная среда разработки и/или проект. Я бы просто перезапустил с нуля. – BalusC