Validation 基于下拉列表选择的输入文本验证

Validation 基于下拉列表选择的输入文本验证,validation,jsf-2,Validation,Jsf 2,如何根据下拉列表中的选择验证输入文本框?您可以将下拉列表中选定的值作为输入组件的属性传递给验证程序,以便验证程序可以获取它 例如 请注意,组件的顺序很重要。JSF按照组件在视图中出现的顺序处理组件。如果下拉组件放在输入文本组件之后,则需要将#{menu.submittedValue}作为属性传递,但此时值尚未转换。如有必要,您可以使用解决方法,该方法放在两个组件之后,并将验证器放在其中。谢谢,BalusC。成功了!!希望我能为你的解决方案做+50。你太棒了! <h:selectOneMen

如何根据下拉列表中的选择验证输入文本框?

您可以将下拉列表中选定的值作为输入组件的属性传递给验证程序,以便验证程序可以获取它

例如


请注意,组件的顺序很重要。JSF按照组件在视图中出现的顺序处理组件。如果下拉组件放在输入文本组件之后,则需要将
#{menu.submittedValue}
作为属性传递,但此时值尚未转换。如有必要,您可以使用
解决方法,该方法放在两个组件之后,并将验证器放在其中。

谢谢,BalusC。成功了!!希望我能为你的解决方案做+50。你太棒了!
<h:selectOneMenu binding="#{menu}" value="#{bean.item}">
    <f:selectItems value="#{bean.items}" />
</h:selectOneMenu>
<h:inputText value="#{bean.input}">
    <f:attribute name="item" value="#{menu.value}" />
    <f:validator validatorId="inputValidator" />
</h:inputText>
@FacesValidator("inputValidator")
public class InputValidator implements Validator {

    @Override
    public void validate(FacesContext context, UIComponent component, Object value) {
        Object item = component.getAttributes().get("item");
        // ...
    }

}