我正在使用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.
所以,如果上面的验证失败了,那么其余的业务逻辑就不应该被执行了..如何实现它...我只需要使用简单的返回“”吗?
答案 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