Primefaces bug - 除了required和readonly字段之外,验证失败后字段更新不起作用

时间:2015-10-29 07:50:55

标签: jsf jsf-2 primefaces

我有一个包含许多输入字段的大表单。用户必须填写一个输入字段(如搜索输入)并按下获取数据并填写表单的命令链接。在以编程方式填写表单后,用户可以检查数据,编辑并提交。

如果用户按照描述行事,一切正常。但是,如果用户尝试提交空表单,他将获得primefaces验证错误(必填字段)。问题是,如果他尝试进行搜索并在inputText中输入内容,如上所述并按搜索命令链接则存在问题 - 仅标记为必需只读满满的。如果我在之前为空的字段上设置readonly = true,那么从现在起它就像从头开始一样填充。

问题是我不想按要求或只读标记所有字段,但我希望字段也填充数据。

XHTML:

<h:body style="vertical-align:middle;margin:auto">
<h:form enctype="multipart/form-data" id="form" >

    <p:outputLabel for="id" value="ID: " />  
    <p:inputText id="id" value="#{myClass.id}"/>

    <p:commandLink id="fill_form" actionListener="#{myClass.fillForm}"  process="@this id" update="num name storage"/>

    <p:outputLabel for="num" value="Quantity:"/>  
    <p:inputText id="num" value="#{myClass.num}" required="true"/>

    <p:outputLabel for="name" value="Product name:"/> 
    <p:inputText id="name" value="#{myClass.name}" readonly="true"/>

    <p:outputLabel for="storage" value="Storage:"/> 
    <p:inputText id="storage" value="#{myClass.storage}"/>

    <p:commandButton value="Submit" id="submit"  update="form" actionListener="#{myClass.saveData}" global="true" styleClass="button"/>

</h:form> 
</h:body>

豆:

@ManagedBean
@ViewScoped
public class MyClass{

    private long id;
    private int num;
    private String name;
    private String storage;


    public void fillForm() {
    setID(558);
    setNum(10);
    setName("Chair");
    setStorage("XYZ");

    }

    public void saveData() {
        // do stuff
    }

    // getters and setters


}

所以,完成 - 一切都没有问题,直到我故意通过尝试提交空表单导致验证错误。

如果我在此之后尝试填写表单,只填写必填字段和只读字段,这是Primefaces中的错误吗?

如果我从字段中删除所有只读和必需的属性,则没有填充的字段。

配置:

  

Liferay 6.2 CE GA3,   Primefaces 5.3,   Liferay Faces 3.2.5-ga6

0 个答案:

没有答案