0

我正在使用 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.

因此,如果上述验证失败,则不应执行其余业务逻辑..如何实现..我只需要简单地使用 return "" 吗?

4

1 回答 1

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"));

 }

小心这种检查总是明确的!在您的检查重复中可能是否定的这是您正在寻找的情况吗?如果是这样,请检查 <> 0

于 2013-09-13T08:34:11.493 回答