Prime面临树视图验证

时间:2011-03-23 10:26:31

标签: java validation jsf primefaces

我正在探索Prime面孔,我想知道如何从树视图验证选择?使用例如inputtextarea,这非常简单

<p:inputTextarea id="description"
    value="#{createAdd.add.description}" cols="50" rows="5"
    validatorMessage="Max length is 25" required="true"
    requiredMessage="Description is required">
    <f:validateLength maximum="25" />
</p:inputTextarea>
<p:message for="description" />

这里我们使用required属性和标记获得textinput的valdation。但是对于TreeView组件,没有必需的属性,并且标签不起作用。

所以,例如

<p:tree value="#{treeBean.root}" var="node" dynamic="true"
id="category" selectionMode="single"
    selection="#{createAdd.add.category}" >
    <p:treeNode>
        <h:outputText value="#{node}" />
    </p:treeNode>
</p:tree>

我们如何验证实际上已经选择了一个节点?

2 个答案:

答案 0 :(得分:3)

我认为验证必须在提交按钮的操作方法中完成。

如果我做得对,你有p:tree的两个bean:TreeBeanCreatAdd bean。我假设你的action方法在CreateAdd bean中:

如果您的提交按钮如下所示:

<h:commandButton value="#{bundle.del}" action="#{CreateAdd.doSubmitAction}"/>

然后您可以在操作方法中检查所选值:

public String doSubmitAction() {
  if(category == null) {
    FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "No node selected", "No node selected");
    FacesContext.getCurrentInstance().addMessage(null, facesMsg);
    return null;
  }
  // do other stuff
}

答案 1 :(得分:0)

您可以在辅助bean中进行验证。