【发布时间】:2012-07-27 10:06:13
【问题描述】:
我有一个 JSF2 页面,其中包含必须在数据库中查找的视图参数。 然后在页面上显示该实体的属性。
现在我想处理视图参数丢失/无效的情况
<f:metadata>
<f:viewParam name="id" value="#{fooBean.id}" />
<f:event type="preRenderView" listener="#{fooBean.init()}" />
</f:metadata>
而init()的代码如下:
String msg = "";
if (id == null) {
msg = "Missing ID!";
}
else {
try {
entity = manager.find(id);
} catch (Exception e) {
msg = "No entity with id=" + id;
}
}
if (version == null) {
FacesUtils.addGlobalMessage(FacesMessage.SEVERITY_FATAL, msg);
FacesContext.getCurrentInstance().renderResponse();
}
现在我的问题是,remaing 页面仍在呈现,我在应用程序服务器日志中收到错误,指出实体为空(因此某些元素未正确呈现)。 我只想显示错误消息。
我是否应该返回一个字符串以便发出一个指向错误页面的POST?
但是,如果我选择这种方式,如何添加自定义错误消息?将字符串作为视图传递
参数似乎根本不是一个好主意。
【问题讨论】:
标签: jsf-2