【发布时间】:2015-07-06 15:05:00
【问题描述】:
我有一个使用 PrimeFaces 5 的 JSF 2 应用程序,尤其是 <p:rating/> 组件。在视图中,组件声明如下:
<h:panelGroup id="avaliacao" rendered="#{meuContexto.avaliacaoPagina==null}">
<div class="float-right">
<p:rating value="#{meuContexto.avaliacaoPagina}" cancel="false">
<p:ajax event="rate" listener="#{meuContexto.onAvaliarPagina}" update="avaliacao" />
</p:rating>
</div>
Você ainda não deu sua opinião sobre esta página. Quando tiver uma opinião, não deixe de registrá-la!
<div class="float-clear"></div>
</h:panelGroup>
我们的想法是,只有在目前没有人存在的情况下才要求评分 (meuContexto.onAvaliarPagina()==null)。当用户点击星号时,评级应该被设置并且用户继续工作,没有任何页面加载。
这里的消息并不重要。 <p:rating/> 组件位于左浮动<div/> 中,只是为了满足布局。星星被点击通知的方法是这样的:
public void onAvaliarPagina(RateEvent rateEvent) {
avaliacao.setNota((Integer)rateEvent.getRating());
}
所以,我的期望是当点击其中一颗星星时,meuContexto.onAvaliarPagina() 方法被调用,rateEvent.getRating() 应该包含星星的编号,但我总是收到meuContexto.getAvaliacaoPagina() 重新调整的精确值.
我需要做什么才能在meuContexto.onAvaliarPagina() 中收到用户设置的实际评分?
提前致谢!
【问题讨论】:
标签: jsf-2 primefaces