【问题标题】:Accept text or characters in lower case接受小写文本或字符
【发布时间】:2012-12-29 08:58:56
【问题描述】:

我正在使用 JSF2.0、Spring 3 和 Hibernate 4。

在 jsf 中是否可以在 inputText 中输入大写或小写的文本或字符?我的意思是即使用户输入大写,inputText 也应该始终接受小写字符。

这在 JSF 2 中可行吗?

谢谢

【问题讨论】:

  • 如果您只想将大写字符转换为小写,您就不能在支持 bean 中调用 String.toLowerCase() 吗??
  • @GanGnaMStYleOverFlowErroR 是的,有可能,想知道在 JSF 中是否存在任何此类客户端验证?
  • 在纯 JSF 中,您必须在服务器端对其进行验证,如第一个答案所述。 stackoverflow.com/a/4014119/1199132 如果你想要客户端验证,你必须使用你自己的 javascript。
  • 不过你可以看看第三方组件库,比如 Primefaces 或 Richfaces,也许你可以找到一些已经完成的东西。

标签: java spring jsf-2


【解决方案1】:

您可以使用Converter 自动转换输入;有关更多信息,请参阅 Java EE 6 tutorial

@FacesConverter("lowerConverter")
public class LowerConverter implements Converter {
    @Override
    public Object getAsObject(FacesContext cx, UIComponent component,
                              String value) throws ConverterException {
        if(value == null) {
            return null;
        }
        Locale locale = cx.getExternalContext().getRequestLocale();
        return value.toLowerCase(locale);
    }

    @Override
    public String getAsString(FacesContext cx, UIComponent component,
                              Object value) throws ConverterException {
        if(value == null) {
            return null;
        }
        return value.toString();
    }
}

【讨论】:

  • McDowell 如何在 JSF 页面中引用这个?
  • @Polppan 你检查到 Java EE 6 教程的链接了吗?
  • 在输入字段中使用converter attributeconverter="lowerConverter"
  • @McDowell 非常感谢。
【解决方案2】:

您可以实现自己的验证器来验证文本大小写。查看this 教程。但这不是客户端验证 - 请求将被发送到服务器,如果它无效页面将被重新加载并显示验证错误消息。

【讨论】:

  • 其实他需要的是一个converter,一个validator用来满足不同的需求
  • @kolossus 这可能是真的。但是有可能有人想让用户只输入小写文本,而不是在服务器上进行转换。你不能确定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多