我想在我的JSF + PrimeFaces前端使用JSR303 Bean Validation。我有一个用@Size(min=2, max=5)
注释的实体。当我输入一些错误的输入并提交表单时,则不会调用action方法,这是正确的,因为验证失败了,但是我没有在元素下的前端获得任何消息。我想,有些消息资源没有正确加载。
这是我的页面:
<h:form id="profile-form" styleClass="profile-form">
<h2>#{txt['interview.profile.form.title']}</h2>
<p:outputPanel id="profile-panel" styleClass="profile-panel">
<tc:textarea id="text_de" value="#{profileBean.profile.textDe}" label="#{txt['interview.profile.text_de']}" validateBeanDisabled="true"/>
</p:outputPanel>
<p:outputPanel id="profile-actions-panel" styleClass="interview-actions-panel profile-actions-panel">
<p:commandButton value="#{txt['global.save']}" action="#{profileBean.saveProfile}" update="profile-form" />
</p:outputPanel>
</h:form>
<tc:textArea>
只是一个复合组件:
<composite:interface>
<composite:attribute name="value" required="false" />
<composite:attribute name="label" required="false" />
<composite:attribute name="id" required="false" />
<composite:attribute name="validateBeanDisabled" required="false" default="true" />
</composite:interface>
<composite:implementation>
<div class="form-line float-left">
<span class="label">#{cc.attrs.label}</span>
<span class="input bigWidth">
<p:inputTextarea value="#{cc.attrs.value}" id="#{cc.attrs.id}">
<f:validateBean disabled="#{cc.attrs.validateBeanDisabled}"/>
</p:inputTextarea>
<p:message id="#{cc.attrs.id}-validation" for="#{cc.attrs.id}" />
</span>
</div>
</composite:implementation>
这是我的faces-config.xml:
<application>
<locale-config>
<default-locale>de</default-locale>
</locale-config>
<resource-bundle>
<base-name>texts</base-name>
<var>txt</var>
</resource-bundle>
我做错了什么?我是否需要在classpath中包含其他内容?感谢。