2

我正在使用 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}"/>
4

2 回答 2

6

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

your_string = StringUtils.replace(your_string, "\r\n", "\n");
于 2014-08-26T13:51:10.943 回答
2

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

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

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

于 2012-10-20T22:16:37.583 回答