【发布时间】:2011-12-02 15:55:02
【问题描述】:
我看到 JSF 2.0 中的 ExternalContext 有一个方法 setResponseStatus,我如何使用 JSF 1.2 来做到这一点?
提前致谢!
【问题讨论】:
我看到 JSF 2.0 中的 ExternalContext 有一个方法 setResponseStatus,我如何使用 JSF 1.2 来做到这一点?
提前致谢!
【问题讨论】:
在 JSF 1.x 中,您需要通过ExternalContext#getResponse() 获取HttpServletResponse,然后在其上调用setStatus()。这基本上也是新的 JSF 2.0 方法在幕后所做的。
HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
// ...
【讨论】:
getResponse() 的返回值转换为HttpServletResponse 是否安全?为什么需要投射?
ExternalContext 的 javadoc,它提到了 servlet 和 portlet 在现有委托方法的行为方面的差异:docs.oracle.com/javaee/6/api/javax/faces/context/…