我有一个输入字段,用户可以在其中输入一些产品名称.根据输入的名称,应显示该产品的详细信息.在输入更改时,我通过当前字段值从数据源获取产品,然后使用AJAX重新渲染产品详细信息.到目前为止,用户只有输入正确的名称才能看到产品详细信息.
这是代码示例:
转换器:
public class ProductConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component, String name) {
return (name != null && ProductDataSource.projectExist(name)) ? new Product(name) : null;
}
public String getAsString(FacesContext context, UIComponent component, Object value) {
return (value instanceof Product) ? ((Product) value).getName() : "";
}
产品是必填字段,因此只有输入正确的名称后才能提交表单.到目前为止,当用户输入错误的名称时,转换器将返回null且验证失败.但是我想要的是仅在表单提交时验证此字段,并在重新呈现输入字段时跳过验证.我试图在a4j:ajax和h:inputText上都应用Instant =“ true”,但没有任何帮助.有任何想法吗?
提前致谢!
(我正在使用JSF 2,Richfaces 4)