【发布时间】:2012-12-18 13:53:17
【问题描述】:
这里是我的 .xhtml 页面的一部分:
<h:inputText id="kartNumIn" value="#{controller.mitarbeiter.kartenNummer}">
<f:attribute name="foo" value="controller.mitarbeiter.id" />
<f:validator validatorId="kartVal" binding="#{kartVal}" disabled="#{!controller.noUpdate}"/>
</h:inputText>
这里是我的验证方法():
@Override
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
int id=(Integer) component.getAttributes().get("foo"); //always 0
int temp = (Integer) value;
if (!(value instanceof Integer)) {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Eingabefehler", "FEHLER:Bitte geben Sie eine Zahl ein!"));
}
System.out.print("Input"+value+"Aktuelle"+component.getAttributes().get("foo").toString());
if (getAlleKartennummern().contains(temp) && temp!=id) {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Kartennummerfehler", "FEHLER:Kartennumer bereits vergeben!"));
}
}
对于我的验证器,我需要第二个值。在这里我需要mitarbeiter.id!对于component.getAttributes().get("foo"),我总是为空......
【问题讨论】:
-
请发布你在一个完全空白的游乐场项目上真正测试过的真实代码,所有设置都为默认设置(这样人们就可以通过复制'n'paste'n'运行代码而不复制你的确切问题做任何不明显的更改/存根)。到目前为止发布的代码似乎粗心过度简化并且与问题症状不匹配。我希望德国开发商能提供更多“Deutsche Gründlichkeit”;)