基于下拉列表选择的输入文本验证
Posted
技术标签:
【中文标题】基于下拉列表选择的输入文本验证【英文标题】:Input text validation based on drop-down list selection 【发布时间】:2012-01-06 00:39:04 【问题描述】:如何根据下拉列表中的选择来验证输入文本框?
【问题讨论】:
【参考方案1】:您可以将下拉列表的选定值作为输入组件的属性传递,以便验证器可以抓取它。
例如
<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");
// ...
请注意,组件的顺序很重要。 JSF 按照它们在视图中出现的顺序处理UIInput
组件。如果下拉组件放置在输入文本组件之后,那么您需要将#menu.submittedValue
作为属性传递,但此时该值尚未转换。如有必要,您可以使用 <h:inputHidden>
解决方法,将其放在两个组件之后并将验证器放入其中。
【讨论】:
谢谢,BalusC。有效!!希望我能为您的解决方案做+50。你摇滚!以上是关于基于下拉列表选择的输入文本验证的主要内容,如果未能解决你的问题,请参考以下文章