【问题标题】:Primefaces inputTextArea maxlength not workingPrimefaces inputTextArea maxlength不起作用
【发布时间】:2012-10-01 08:02:08
【问题描述】:

我正在使用 JSF 2.0 和 Primefaces 3.2。我有一个最大长度设置为 4000 的文本区域。 但是文本区域允许我输入 4001 个字符。 (总是一个额外的字符)。 我一直将我的 maxlength 设置为 3999 以避免这个问题 这是一个已知的问题?我在展示中没有看到这个问题,有什么想法吗?

<p:inputTextarea id="text" value="#{controller.text}" maxlength="4000"
                rows="6" cols="150" autoResize="true" required="true" requiredMessage="Text is required" rendered="#{controller.condition}"/>

【问题讨论】:

  • 您是否在浏览器控制台中看到任何错误?它在 IE/FF/Chrome 上完美运行,尝试升级到最新的 pf 版本
  • 它发生在 FF 和 Chrome 中,我也使用相同的浏览器来检查展示。正如丹尼尔所说,这可能是 PF 版本问题,我将升级到最新版本,看看是否有帮助

标签: jsf-2 primefaces


【解决方案1】:

有时输入计数为 2 个字符:\r\n 而不仅仅是 \n。 在这种情况下,请尝试在您的 setter 方法中将所有这些字符替换为 \n。例如,您可以使用 StringUtils.replace() 方法来做到这一点:

your_string = StringUtils.replace(your_string, "\r\n", "\n");

【讨论】:

    【解决方案2】:

    使用占用超过 1 个字节来存储的 UTF-8 字符仍算作一个字符,但您可能会在数据库中遇到此问题(收到超过 4000 个字符的错误消息)。

    你说它总是 +1 字符,只使用 ASCII 字符(数字+英文字母)结帐。

    ps:(如果您使用 nobleCount 显示剩余字符,它也有一些 UTF-8 字符/一些特殊字符的问题)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-26
      • 2018-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      相关资源
      最近更新 更多