在没有页面重新加载或重新绘制的情况下在页面上抛出警报

时间:2013-12-04 17:09:22

标签: jsf primefaces

我正在提交表单,验证完成后,字段会将数据插入表中。如果插入返回1062(重复键异常),我想提醒用户他们需要修改字段(字面上返回警报(“名称已存在,请输入新的”);)。

我在出错时重定向页面没有问题,但我实际上并不希望页面重新加载/重新绘制,只是为了显示警报。

SQL异常代码

} catch(SQLException e){
   String errorCode = Integer.toString(e.getErrorCode());
   throw new FacesException(errorCode, e);
} 

在调用方法中,我将actionstatus返回为此特定场景的“重复”,我将其发送到xhtml页面,其中只包含带警报的脚本,但因为这是在faces-config导航中,它重定向页面而不是返回响应,只是显示警报。

1 个答案:

答案 0 :(得分:0)

在调用方法中捕获语句

中加入:

FacesContext facesContext = FacesContext.getCurrentInstance();
FacesMessage facesMessage = new FacesMessage("This promotion name already exists.");
facesContext.addMessage(null, facesMessage);

在原始.xhtml页面中添加:

<p:messages id="messages" autoUpdate="true" />