Jsf 2 理解JSF中的导航
尝试构建一个简单的JSF应用程序。我不明白的一点是,使用什么机制来触发页面重新加载。我试过跟随Jsf 2 理解JSF中的导航,jsf-2,Jsf 2,尝试构建一个简单的JSF应用程序。我不明白的一点是,使用什么机制来触发页面重新加载。我试过跟随 <h:selectOneMenu id="ChallengesListBox" onchange="submit()" valueChangeListener="#{bean.projectselected}"> <f:selectItems value="#{bean.projectnames}"/> </h:selectOneMe
<h:selectOneMenu
id="ChallengesListBox"
onchange="submit()"
valueChangeListener="#{bean.projectselected}">
<f:selectItems value="#{bean.projectnames}"/>
</h:selectOneMenu>
<h:commandButton value="submit" action="#{bean.submit}" />
但这没有效果。bean方法
public String submit()
保持不变,正如我在调试模式中看到的。这与导航无关。没有调用bean操作方法的原因有很多。您可以在以下答案中找到它们: 我怀疑您可能只是没有,或者表单中有多个按钮,第一个按钮将在提交时调用,或者在处理表单提交时按钮本身没有呈现 与具体问题无关,这种JSF1.x风格的方法非常笨拙。由于您显然已经在使用JSF 2.x,我建议使用以下更简单的方法:
<h:selectOneMenu value="#{bean.projectname}">
<f:selectItems value="#{bean.projectnames}" />
<f:ajax render="somepanel" />
</h:selectOneMenu>
<h:panelGroup id="somepanel">
<h:outputText value="#{bean.description}" rendered="#{not empty bean.projectname}" />
</h:panelGroup>
根据下拉列表的选择,{bean.projectname}不为空时,这将呈现{bean.description}值
并确保删除了支持bean的所有绑定属性。此外,还应确保只要在内部有输入/按钮组件,该bean都是@viewscope
<h:selectOneMenu value="#{bean.projectname}">
<f:selectItems value="#{bean.projectnames}" />
<f:ajax render="somepanel" />
</h:selectOneMenu>
<h:panelGroup id="somepanel">
<h:outputText value="#{bean.description}" rendered="#{not empty bean.projectname}" />
</h:panelGroup>