Textarea maxlength问题与数据库列大小约束

时间:2012-10-29 21:45:39

标签: java html database textarea newline

我一直在网上寻求支持,但我没有找到任何有用的东西。

我有一个数据库表,其中的列包含 1500 字符的大小限制。 我使用hibernate作为数据库的ORM。

我的问题在于HTML textarea中的换行符字符。 在我的HTML表单中,我有一个 maxlength 设置为 1500 的文本区域。 在HTML textarea中,换行符仅被视为 ONE 字符。 当我通过servlet提交表单时,换行符字符在java中被视为 TWO 字符。

因此,假设我填写了 1500 字符的textarea,其中包含2个换行符,java会将传递的数据视为 1502 字符。 因此,当我将数据保存到数据库时,它超出了 1500 限制,因此违反了数据库列约束。

示例文字:

  

Lorem ipsum dolor坐下来,精神上的精神。 Vivamus在est eu augue facilisis viverra。 Phasellus eu lectus a nisi feugiat aliquet quis ut velit。 Nunc vehicula neque坐在amet quam interdum viverra。 Morbi aliquet consequat lorem non rhoncus。 Sed m​​auris mi,scelerisque sit amet tempus molestie,dapibus vitae quam。 Proin id massa velit,commodo facilisis velit。在blandit,nibh quis auctor convallis,lectus nibh venenatis orci,quis dignissim sapien arcu eget erat。在quis diam id mauris consectetur tempor sit amet sit amet justo。 Donec egestas metus eu massa vestibulum ultrices。 Quisque vitae scelerisque metus。 Vestibulum vehicula mi id augue condimentum pellentesque。

     

Suspendisse tempus turpis lobortis turpis imperdiet vulputiet。 Fusce fringilla lorem et ligula feugiat id sodales nisi vehicula。 Praesent egestas vestibulum ante,eget consequat magna molestie sit amet。 Praesent egestas pharetra augue egestas imperdiet。 Suspendisse ut elit augue,坐在amet ornare nulla。 Morbi cursus,diam at commodo gravida,elit lacus pulvinar lectus,vitae porttitor mauris sapien sed felis。 Vestibulum non iaculis erat。 Phasellus pharetra arcu sed dui porta tempus。 Mauris lectus velit,cursus quis facilisis a,mattis rhoncus quam。 Ut nisl nulla,malesuada imperdiet dictum id,sagittis quis orci。 Duis bibendum pharetra quam eu pharetra。 Fusce interdum nulla vel elit bibendum non pellentesque dui egestas。 Praesent sed lacus sapien。 Vesbulum id arcu neque,et faucibus lorem。 Fusce metus。

段落之间的差距包含2个换行符

我需要知道的是如何才能对HTML中的换行符字符进行不同的解释?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您可以使用\r\n行结尾替换\n样式行结尾:

str = str.replaceAll("(\\r)", "");

这应该只留下\n行结尾。

答案 1 :(得分:0)

html和java中的新行字符是相同的:\n可能发生的事情是您在textarea

中使用了两个新行字符
Quisque vitae scelerisque metus. Vestibulum vehicula mi id augue condimentum pellentesque.\n (1)
\n(2)
Suspendisse tempus turpis lobortis turpis imperdiet vulputate. Fusce fringilla lorem et ligula feugiat id