您可以将下拉列表的选定值作为输入组件的属性传递,以便验证程序可以抓取它.
例如
<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>
Run Code Online (Sandbox Code Playgroud)
同
@FacesValidator("inputValidator")
public class InputValidator implements Validator {
@Override
public void validate(FacesContext context, UIComponent component, Object value) {
Object item = component.getAttributes().get("item");
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,组件的顺序很重要.JSF UIInput
按照它们在视图中出现的顺序处理组件.如果下拉组件放置后输入文本组件,然后你需要传递#{menu.submittedValue}
的属性,但在这一点上的价值还没有被转换.如果需要,您可以使用<h:inputHidden>
放在两个组件之后的解决方法并将验证器放在那里.
归档时间: |
|
查看次数: |
2696 次 |
最近记录: |