bean验证无效

时间:2015-12-02 15:20:21

标签: jsf bean-validation

我搜索了很多,但没有找到任何解决方案。我正在使用primefaces 5.2版本。这是我的代码:

    <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 &amp;&amp; !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"/>但输入仍未验证。我不明白为什么。为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,我认为这不重复。我在pom.xml中进行了更改

<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-impl</artifactId>
    <version>2.2.4</version>
</dependency>

<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-api</artifactId>
    <version>2.2.4</version>
</dependency>

从版本 2.2.4 2.2.2 版本,现在它正在进行bean验证。我想可能是 2.2.4 2.2.3 版本中的错误。