希望你们一切顺利。 scenerio是我有一个表格,其中有名称inputText字段。我希望如果用户在名称中键入'
,则会将其替换为//
。我做了替换功能。但我不知道我怎么能用ajax做到这一点。
就像我有像这样的输入字段
<h:inputText id="name" value="#{user.name}">
<f:ajax event="blur" render="nameError name"/>
</h:inputText>
<h:message for="name" id="nameError" style="color: red" />
现在我希望如果用户在名称字段中键入'Basit'Mahmood'Ahmed'
,那么在焦点上失去该值就会变为//Basit//Mahmood//Ahmed//
。因此,当用户按下提交按钮时,//Basit//Mahmood//Ahmed//
应该发布到服务器,而不是'Basit'Mahmood'Ahmed'
。
我如何在JSF 2.0中完成它?
答案 0 :(得分:1)
您需要创建一个转换器。
E.g。
@FacesConverter("userNameConverter")
public class UserNameConverter implements Converter {
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
return (String) value;
}
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
return (value != null) ? value.replaceAll("'", "//") : null;
}
}
与
<h:inputText id="name" value="#{user.name}" converter="userNameConverter">
getAsObject()
将在验证阶段运行,并在更新模型值并重新渲染视图之前执行所需的转换。