作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 jsf 中遇到一个问题,当我附加到我的 时,如下所示
<h:inputText id="" value="" binding="">
<a4j:support
actionListener="Action_Class.validateUserName"
event="onblur" />
</h:inputText>
UIInput input = actionEvent.getParent();
String userName = input.getSubmittedValue();
最佳答案
操作监听器在调用应用程序阶段运行。那时,输入组件的提交值由 UIInput#getSubmittedValue()
提供。仅当输入组件本身转换或验证失败时才可用。在验证阶段,如果输入组件已成功转换和验证,则提交的值将被清除并设置组件的(本地)值。这可以通过 UIInput#getValue()
获得.
所以,你实际上应该使用:
String userName = (String) input.getValue();
actionListener
并注册
<h:inputText validator>
或
<f:validator>
而不是通常的方式。提交的(和转换的,如果适用)值以这种方式立即可用作为
validate()
的第三个参数方法来自
Validator
界面。
<h:inputText ... validator="usernameValidator">
<a4j:support event="onblur" />
</h:inputText>
public class UsernameValidator implements Validator {
@Override
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
String username = (String) value;
// ...
if (!valid) {
throw new ValidatorException(new FacesMessage("Invalid username."));
}
}
}
关于jsf - getSubmittedValue() 即将到来 null jsf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19129728/
我在 jsf 中遇到一个问题,当我附加到我的 时,如下所示 如上所示,当我从字段中跳出时,validateUserName 必须调用。它正在调用,但是当我尝试获取我提交的值时,如下所示, n
我是一名优秀的程序员,十分优秀!