我搜索了很多,我沒有找到任何解決方案。我正在使用primefaces 5.2版本。這裏是我的代碼:bean驗證不起作用
<p:dialog header="#{msg['table.playlist.edit.caption']}" widgetVar="editPl" id="editPl" appendTo="@(body)" modal="true" minHeight="100">
<h:form id="editForm">
<h:panelGrid id="editPanel" columns="3" cellpadding="5">
<h:outputText for="fieldName" value="#{msg['table.playlist.column.header.name']}" />
<p:inputText id="fieldName" value="#{playlistModel.playlist.plName}" label="FieldName"/>
<p:message for="fieldName" style="color:red" />
<h:outputText value="#{msg['table.playlist.column.header.default']}" />
<h:selectBooleanCheckbox value="#{playlistModel.playlist.defaultPl}"/>
</h:panelGrid>
<p:commandButton value="#{msg['modal.button.save']}" ajax="true" validateClient="true" update=":editForm" action="#{playlistModel.addPlaylist}" oncomplete="if (args && !args.validationFailed) PF('editPl').hide();"/>
<p:commandButton value="#{msg['modal.button.cancel']}" onclick="PF('editPl').hide();"/>
</h:form>
</p:dialog>
我的類:
@ManagedBean(name="playlistModel")
@ViewScoped
public class PlaylistModel extends BaseModel implements Serializable{
private E_CMS_PL playlist;
.
.
.
}
我的豆:
import javax.validation.constraints.Size;
@Entity
@Table(name="E_CMS_PL")
public class E_CMS_PL extends BaseEntity {
/** Name of the playlist */
@Column(name = "PL_NAME", unique=true ,length=64)
@Size(min=2,max=5)
private String plName;
.
.
.
}
當我點擊保存它只是在addPlaylist輸入方法,我也嘗試測試它有一個像這樣的簡單按鈕:<p:commandButton value="test" ajax="false" validateClient="true"/>
但輸入仍未驗證。我不明白爲什麼。爲什麼這不起作用?
http://stackoverflow.com/a/7548821/1391249 – Tiny
根據你以前提出的問題,你的確在使用Tomcat。所以重複的複製肯定適用。 – BalusC
我檢查了罐子,我有:** validation-api-1.1.0.Final.jar,hibernate-validator-5.1.3.Final.jar,slf4j-api-1.7.12.jar **。是的,我正在使用** tomcat7 **,並且我的項目使用** maven **進行配置。我不有** <的context-param> javax.faces.VALIDATE_EMPTY_FIELDS假 PARAM值> 的context-param> ** web.xml和我不有**在我的xhtml中 **。我用** @ Size,@ NotNull,@ NotEmpty,@ NotBlank **嘗試過,它們都沒有工作。仍然沒有顯示錯誤信息。任何想法我能做什麼? –
FAndrew