我在托管 bean(JSF 2.2)中声明属性时遇到问题,我已经阅读了有关 bean 中属性名称约定的其他问题,我的似乎没问题。我的 page.jsf 是一个 ui 组合,属性名称是一个 date: private Date dataSemAtendimento
。这是我正在使用的 primefaces (5.1) 的日历标签:
<p:dialog header="Escolha as data de feriado e ponto facultativo"
widgetVar="modalCalendar" id="modalCalendar" modal="true" width="400"
height="500" appendTo="@(body)">
<p:calendar id="popup" widgetVar="popupCal"
value="#{postoAtendimentoBean.dataSemAtendimento}">
</p:calendar>
<p:commandButton value="Adicionar data" update="tableCal">
<p:ajax listener="#{postoAtendimentoBean.adicionarDataFeriado}" />
</p:commandButton>
<p:dataList id="tableCal"
value="#{postoAtendimentoBean.postoDiaSemAtendimentoList}" var="data"
style="width:50%">
<f:facet name="header">
Datas que não ocorreram o atendimento
</f:facet>
<p:column>
<h:outputText value="#{data}">
<f:convertDateTime locale="pt" />
</h:outputText>
</p:column>
<p:column>
<p:commandButton icon="ui-icon-trash" update="tableCal"
action="#{postoAtendimentoBean.removerDataFeriado(data)}">
<p:ajax listener="#{postoAtendimentoBean.removerDataFeriado(data)}"></p:ajax>
</p:commandButton>
</p:column>
</p:dataList>
<p:separator />
<p:panelGrid style="margin: auto;">
<p:commandButton value="Confirmar" onclick="PF('modalCalendar').hide();" />
</p:panelGrid>
</p:dialog>
这是与 get/setter 相关的托管 bean 代码:
@ManagedBean
@ViewScoped
public class PostoAtendimentoBean extends AbstractCRUDBean<PostoAtendimento, Long> {
private Date dataSemAtendimento;
public Date getDataSemAtendimento() {
return dataSemAtendimento;
}
public void setDataSemAtendimento(Date dataSemAtendimento) {
this.dataSemAtendimento = dataSemAtendimento;
}
}
渲染视图时出错[/resources/template/template.xhtml]:javax.el.PropertyNotFoundException:/pages/cadastros/posto_atendimento/manter_posto_atendimento_persistencia.xhtml @161,25 value="#{postoAtendimentoBean.dataSemAtendimento}":类'br。 com.webtech.scheduler.bean.postoatendimento.PostoAtendimentoBean' 没有属性“dataSemAtendimento”。
我在wildfly(8.2.1)实例中运行,但奇怪的是当我手动部署它时它不起作用但是当我通过eclipse在服务器选项卡中添加耳朵时它可以正常工作。我迷路了,已经尝试了几件事。有任何想法吗?谢谢。
另一个奇怪的事情是,当我通过 Maven webModule 标签更改我的应用程序的上下文根时,这开始发生了。
编辑:我通过使用错误的上下文根复制 .class 并使用新的上下文根将其放入生成的耳朵中来解决这个问题,但这是解决问题的一种非常有效的方法。