我的支持bean中有以下代码:
sudo
在jsf:
try {
contractService.create(selectedContract);
conversation.end();
return "search?faces-redirect=true";
} catch (ActiveContractExistsException e) {
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, null, e.getMessage()));
return null;
}
和
<p:growl id="growl" showDetail="true" showSummary="false" closable="true" autoUpdate="true"/>
结果我得到了:
就像你可以看到这远离<p:commandButton value="Save" actionListener="#{contractView.update}" update="growl"/>
。但最有趣的部分是当我的代码跟随时(在SEVERITY_ERROR
块之外添加消息):
catch
然后一切都很好:
如何在处理异常时将 try {
contractService.create(selectedContract);
conversation.end();
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, null, "Some message"));
return "search?faces-redirect=true";
} catch (ActiveContractExistsException e) {
//FacesContext context = FacesContext.getCurrentInstance();
//context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, null, "Some message"/*e.getMessage()*/));
return null;
}
级别设置为我的消息?
答案 0 :(得分:0)
我的问题与EE容器有关。如果我没有从EJBException扩展,它们会自动换行,因此块@ApplicationException
不会执行。有两种方法可以解决我的问题:
static class A
{
public static string GetPath()
{
return "C:\\";
}
}
注释添加到我的类例外