如果存在验证错误,actionListener方法不应执行业务逻辑

时间:2013-09-13 06:58:18

标签: primefaces

我正在使用Primefaces 3.5 我有一个托管bean并在actionListener方法中进行验证。如果遇到任何验证错误,页面不应该执行业务逻辑。你能不能告诉我怎么做。

代码例如:

在jsp页面中显示我正在使用的错误消息p:growl:

<p:growl id="growl" showDetail="true" sticky="true" autoUpdate="true"  /> 

<p:commandButton value="Save"  actionListener="#(bean.save}" update=":myForm:growl" ></p:commandButton>
public void save(ActionEvent actionEvent)
    {
        FacesContext context = FacesContext.getCurrentInstance();

if(this.repeats == null || new BigDecimal("0").equals(this.repeats))
        {
            context.addMessage(null, new FacesMessage(validatioHeaderMessage,"Repeats should not be blank"));  
        }

 ---- Rest of business logic.

所以,如果上面的验证失败了,那么其余的业务逻辑就不应该被执行了..如何实现它...我只需要使用简单的返回“”吗?

1 个答案:

答案 0 :(得分:0)

那么你可以检查你的bean。但也可以在您的视图中查看此示例:http://www.primefaces.org/showcase/ui/pprAjaxValidations.jsf您只需使用必需的属性

如果您想在bean中执行此操作,只需执行以下操作:

if(repeats.compareTo(BigDecimal.ZERO) > 0)
 {

     //Do bussiness logic
 }
 else
 {
     //Add faces message
     FacesMessage(validatioHeaderMessage,"Repeats should not be blank"));

 }
小心这种检查总是明确的!在你的检查重复可能是负面的,这是你正在寻找的情况?如果是这样,请检查&lt;&gt; 0