JSF 的FacesContext 在使用中遇到这样的一个问题,就是向FacesContext中加入的FacesMessages只有第一次能够显示出来,第二次没有办法显示。经多次试验,最终发现是我自己在基类中写的getFacesContext()方法有问题。
我是这样写的:
private FacesContext facesContext;
public FacesContext getFacesContext() {
if (this.facesContext==null)
this.facesContext =FacesContext.getCurrentInstance();
return FacesContext.getCurrentInstance();
}
然后在子类中直接调用这个方法就可以得到FacesContext了。
想法是好的,但是并没有仔细了解FacesContext的实现。
其实FacesContext.getCurrentInstance()就已经能够每调用的时候都在上下广得到同一个实例了。不必再象我这样写了。反而会画蛇添足。
改成这样就可以了。
public FacesContext getFacesContext() {
return FacesContext.getCurrentInstance();
}
<!---->
Technorati : facesContext
分享到:
相关推荐
jsf的facesContext上下文工具类
JSF FacesContext 详解 FacesContext 是 JSF 框架中一个核心组件,它负责管理 JSF 请求的状态信息。在 Faces API 中,FacesContext 和 ExternalContext 是两个经常使用的类,本文将详细介绍 FacesContext 的编程...
本文将深入探讨JSF中获取Managed Bean或解析表达式的几种常见方法,以及如何利用FacesContext和Application对象来操纵组件树和管理其他资源。 1. 获取Managed Bean或解析表达式 - 方法一:通过ValueBinding 这是...
FacesContext facesContext = FacesContext.getCurrentInstance(); ExternalContext externalContext = facesContext.getExternalContext(); externalContext.redirect("newPage.xhtml"); // 这里不再执行任何...
FacesContext facesContext = FacesContext.getCurrentInstance(); ResourceBundle bundle = facesContext.getApplication().getResourceBundle(facesContext, "bundleName"); String localizedText = bundle....
FacesContext facesContext = FacesContext.getCurrentInstance(); if (facesContext != null) { return (ServletContext) facesContext.getExternalContext().getContext(); } return null; } } ``` 在...
**JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,主要用于构建Web应用程序。JSF的核心思想是提供一种组件化和事件...无论你是初学者还是有经验的开发者,都能从中找到所需的信息,提升你的JSF开发技能。
public Object getAsObject(FacesContext context, UIComponent component, String value) { if (value == null || value.isEmpty()) { return null; } try { return Integer.parseInt(value); } catch ...
JSF的生命周期允许开发者灵活地插入自定义的行为,比如通过调用`FacesContext.responseComplete()`或`FacesContext.renderResponse()`来改变流程。理解生命周期对于有效地编写JSF应用程序至关重要,因为它指导了何时...
FacesContext context = FacesContext.getCurrentInstance(); // 获得ServletContext对象 ServletContext servletContext = (ServletContext) context .getExternalContext().getContext(); // 取得文件的绝对...
在学习Struts的过程中,新手可能会遇到各种错误,本文将针对其中一种常见问题进行详细解答,即"JSF运行时出现javax.servlet.jsp.JspException: Cannot find FacesContext"的处理方法。 这个问题通常是由于在JSF应用...
- `decode(FacesContext context)`:处理请求参数并更新组件状态。 - `encodeBegin(FacesContext context)`:编码组件的开始标签。 - `encodeEnd(FacesContext context)`:编码组件的结束标签。 - `encodeChildren...
JSF\JSF运行时出现javax.servlet.jsp.JspException Cannot find FacesContext处理方法
FacesContext facesContext = FacesContext.getCurrentInstance(); ExternalContext externalContext = facesContext.getExternalContext(); // 获取Session对象及其特性 Map, Object> sessionMap = (Map, Object>)...
public void encodeBegin(FacesContext context, UIComponent component) throws IOException { MyCustomComponent customComponent = (MyCustomComponent) component; // 编码HTML } @Override public void ...
它创建一个FacesContext对象,该对象存储了应用程序的所有数据,并在整个JSF生命周期中起着关键作用。 JSF生命周期分为六个阶段: 1. 恢复视图:在这个阶段,JSF寻找或创建与请求关联的组件树,这个组件树代表了...
FacesContext context = FacesContext.getCurrentInstance(); UIInput input = (UIInput) context.getViewRoot().findComponent(":myForm:username"); if (input != null) { String username = (String) input....
总之,《JSF in Action》作为一本实战书籍,旨在帮助读者从基础到高级全面掌握JSF技术,无论你是初学者还是有经验的开发者,都能从中受益。通过学习这本书,你可以掌握JSF的核心特性,从而更高效地开发出稳定、可...
6. **FacesContext**:作为JSF的核心类,FacesContext提供了访问当前请求上下文信息的接口,包括请求参数、会话状态、消息等。 7. ** Managed Beans**:Managed Beans是JSF中的主要业务对象,用于存储和管理应用...
JavaScriptServer Faces(JSF)是Java平台上用于构建...对于初学者和经验丰富的JSF开发者来说,都是一个宝贵的参考资料。通过学习这份文档,开发者将能够更好地理解JSF的工作原理,创建功能丰富、健壮的Web应用程序。