gpt4 book ai didi

java - 带有来自输入的参数的 jsf- validator

转载 作者:行者123 更新时间:2023-11-29 03:39:12 25 4
gpt4 key购买 nike

这是我的 .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!"));
}
}

对于我的 validator ,我需要第二个值。我在这里需要 mitarbeiter.id!对于 component.getAttributes().get("foo") 我总是得到 null....

最佳答案

我认为 OP 不再对这个问题感兴趣,但是如果其他人发现这个问题:

int id=(Integer) component.getAttributes().get("foo");

当你得到一个字符串时将不起作用。你写的总是空的有点奇怪。你应该得到:

java.lang.String cannot be cast to java.lang.Integer

如果是这种情况,请尝试:

int id = Integer.parseInt((String) component.getAttributes().get("foo"));

关于java - 带有来自输入的参数的 jsf- validator ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13934503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com