Ing*_*uiZ 15 validation jsf whitespace required-field jsf-2
当我required="true"
进入时<h:inputText>
,它仍然允许空格.我一直在尝试修改jsf-api.jar
但我无法理解如何生成新的JAR,所以我尝试isEmpty()
从UIInput
类中修改方法并编译它,打开jsf-api.jar
并用新的替换它,但它不起作用.
trim()
当用户在a中写入<h:inputText>
不允许空格时,我需要做的是.我怎样才能做到这一点?
如果你想下载jsf-api.jar
资源,你可以这样做,只需阅读如何:http://javaserverfaces.java.net/checkout.html.
Bal*_*usC 43
这是正常和自然的行为,而不是JSF特有的.空格可能是完全有效的输入.required="true"
空输入中的唯一开始,而不是填充输入.但是,在JSF中,您可以创建一个Converter
for String
类来自动修剪空白.
@FacesConverter(forClass=String.class)
public class StringTrimmer implements Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
return value != null ? value.trim() : null;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
return (String) value;
}
}
Run Code Online (Sandbox Code Playgroud)
把这个类放在项目的某个地方.它会自动注册,感谢@FacesConverter
每个String
条目自动调用和感谢forClass=String.class
.
无需破解JSF API/impl.这毫无意义.
如果要关闭BalusC作为标准JSF行为作为答案之一的行为,可以修改web.xml并包含以下内容.
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
<context-param>
Run Code Online (Sandbox Code Playgroud)
这将触发JSF框架考虑null
可能更可取的值,或者替代BalusC的答案.
归档时间: |
|
查看次数: |
16743 次 |
最近记录: |