- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 MyFaces 和 Mojarra 2.1 中,都存在一个缺陷,当 javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
设置为 true
, 任何标记为必填字段并在模型中预填充的字段,当消隐和提交时,将以其原始非消隐值重新显示,而不是留空。
场景是:
javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
至
false
.设置为
false
提供所需的行为,即当页面重新显示所需的字段错误消息时,该字段保持空白。
Note that it appears Mojarra had a similar issue reported over 6 mos ago yet no progress has been made.
javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL
设置为 true 而不是 false 并且还没有遇到这个必需的字段可用性问题?
最佳答案
这个问题在JSF 2 - Bean Validation: validation failed -> empty values are replaced with last valid values from managed bean中有详细解释.就这一点而言,在 Mojarra 中,它是由 HtmlBasicRenderer#getCurrentValue()
中的错误或至少是疏忽引起的。并已报告为 issue 2266 .
同时,解决此问题的最简单方法,同时考虑到具有自己的渲染器(如 PrimeFaces)的 3rd 方组件库,是复制 UIInput
的源文件。直接在项目的源文件夹中,然后编辑 getSubmittedValue()
因此:
public Object getSubmittedValue() {
if (submittedValue == null && !isValid() && considerEmptyStringNull(FacesContext.getCurrentInstance())) {
return "";
}
else {
return submittedValue;
}
}
它将在
/WEB-INF/classes
结束这将优先于 JSF JAR 文件中的类加载。诚然,这有点笨拙,但它不如重建 JSF JAR 文件或覆盖每个输入渲染器那么痛苦。
关于jsf-2 - javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL 设置为 TRUE 时的必填字段问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692404/
我是一名优秀的程序员,十分优秀!