h:commandButton 部分刷新无效
h:commandButton partial refresh cannot work
我是 JSF 的新手,我在我的 JSF 2.2 中实现部分 refresh/rendering 有困难,我使用的是 .xhtml 页面,我已经通过 Internet 搜索解决方案但没有用.我的做法错了吗?
这是我的代码:
<h:form>
<div class="container">
<div class="section">
<!-- Icon Section -->
<h:panelGroup id="result" styleClass="row">
<ui:repeat var="project" value="#{homeBean.displayProjectList}">
<div class="col s12 m6 l4">
<div class="card">
<div class="card-image">
<img src="resources/materialize/background1.jpg" />
<span class="card-title">#{project.title}</span>
</div>
<div class="card-content">
<p>#{project.summary}</p>
</div>
<div class="card-action">
<a href="./event.xhtml">More</a>
</div>
</div>
</div>
</ui:repeat>
</h:panelGroup>
<div class="row center">
<h:commandButton styleClass="btn-large yellow lighten-2 black-text" value="SHOW MORE" actionListener="#{homeBean.showMore()}" >
<f:ajax render="result" />
</h:commandButton>
</div>
</div>
</div>
</h:form>
按下命令按钮时,我希望仅刷新面板组 id="result" 中涵盖的部分,它确实更新了,但我希望仅刷新该部分而不是整个页面。
非常感谢您的时间和精力。
从 h:commanButton 中删除 actionListener 并将侦听器放入 f:ajax 并尝试
我觉得不错,应该可以。您确定整个页面都在刷新吗?
<f:ajax>
应该可以解决问题。
我找到了答案,对于我来说,我通过导入 javax.faces-2.2.7.jar
使用 JSF 2.2,我应该在 head
标签
中设置以下 outputScript 声明
<h:outputScript library="javax.faces" name="jsf.js" target="head" />
现在效果很好。
参考:
Programatically adding Ajax Behaviour - “Mojarra is not defined”
我是 JSF 的新手,我在我的 JSF 2.2 中实现部分 refresh/rendering 有困难,我使用的是 .xhtml 页面,我已经通过 Internet 搜索解决方案但没有用.我的做法错了吗?
这是我的代码:
<h:form>
<div class="container">
<div class="section">
<!-- Icon Section -->
<h:panelGroup id="result" styleClass="row">
<ui:repeat var="project" value="#{homeBean.displayProjectList}">
<div class="col s12 m6 l4">
<div class="card">
<div class="card-image">
<img src="resources/materialize/background1.jpg" />
<span class="card-title">#{project.title}</span>
</div>
<div class="card-content">
<p>#{project.summary}</p>
</div>
<div class="card-action">
<a href="./event.xhtml">More</a>
</div>
</div>
</div>
</ui:repeat>
</h:panelGroup>
<div class="row center">
<h:commandButton styleClass="btn-large yellow lighten-2 black-text" value="SHOW MORE" actionListener="#{homeBean.showMore()}" >
<f:ajax render="result" />
</h:commandButton>
</div>
</div>
</div>
</h:form>
按下命令按钮时,我希望仅刷新面板组 id="result" 中涵盖的部分,它确实更新了,但我希望仅刷新该部分而不是整个页面。
非常感谢您的时间和精力。
从 h:commanButton 中删除 actionListener 并将侦听器放入 f:ajax 并尝试
我觉得不错,应该可以。您确定整个页面都在刷新吗?
<f:ajax>
应该可以解决问题。
我找到了答案,对于我来说,我通过导入 javax.faces-2.2.7.jar
使用 JSF 2.2,我应该在 head
标签
<h:outputScript library="javax.faces" name="jsf.js" target="head" />
现在效果很好。
参考:
Programatically adding Ajax Behaviour - “Mojarra is not defined”