【发布时间】:2015-08-23 10:04:04
【问题描述】:
我正在使用p:inputText,而size 属性并未有效限制字段中允许的字符数:
<p:inputText id="limitedField" title="Limited Field"
size="16" required="true"
styleClass="plainInput"
value="#{entity.limitedField}" />
首先,用户可以输入更多的 16 个字符。其次,当他们这样做时,他们输入了一个无效值,而不是在前端向用户显示一个优雅的消息,这应该是 JSF 框架错误的规定,他们得到一个通用的异常:
Caused by: java.sql.SQLException: ORA-12899: value too large for column "MYSCHEMA"."MY_TABLE"."LIMITED_FIELD" (actual: 22, maximum: 16)
我查看了生成的 HTML,确实为文本输入提供了 size 属性,但它无效:
<input id="..." name="limitedField" type="text" size="16" title="Limited Field"" aria-required="true" class="..." />
我认为简单地设置 size 属性可以防止大小无效的数据甚至被尝试写入数据库,但显然不是。我该如何解决这个问题?
【问题讨论】:
标签: primefaces