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 に答える