- 浏览: 203654 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
feihumingyue:
nice 很好啊
JSF中如何使用FacesContext类 -
wgcniler:
请问如果传到存储过程的参数是一个嵌套表的话该怎么写?自定义的o ...
spring中调用存储过程 -
wgcniler:
请问如果传到存储过程的参数是ARRAY,但ARRAY的元素不是 ...
spring中调用存储过程 -
bengan:
谢谢楼上的提示
关于出现僵尸信号SIGBAT或者EXC_BAD_ACCESS的解决方案 -
gypgyp:
用xcode的菜单:product/profile,弹出窗口中 ...
关于出现僵尸信号SIGBAT或者EXC_BAD_ACCESS的解决方案
使用ExternalContext类提供的方法可以获取ServletContext、ServletRequest和ServletResponse对象,构造FacesContext实例时需要这些对象。除此之外,ExternalContext实例提供了包装器方法,可以使用这些方法获得原来需要从ServletContext、ServletRequest及ServletResponse对象上调用一些方法获得的信息。3.3.1 获取ServletContext、ServletRequest和ServletResponse对象可使用下列方法获取servlet信息:
●getContext 此方法可获取Web应用中与当前请求相关联的ServletContext对象。其签名如下:public abstract Object getContext()
●getRequest 此方法可获取代表当前正在处理的请求的ServletRequest对象。其签名如下:public abstract Object getRequest()
●getResponse 此方法可获取代表当前正在呈现的响应的ServletResponse对象。其签名如下:public abstract Object getResponse()这些方法都是返回一个java.lang.Object对象,不是servlet特有的类型,这样就可以使JSF实现独立于其运行的环境。比如,JSF既可用于Web容器,也可以用于其他容器,如portlet等。
3.3.2 获取ServletContext特性getApplicationMap方法返回一个包含ServletContext对象里全部特性名/值对的Map对象。下面是此方法的签名:public abstract java.util.Map getApplication()作为一个例子,下面的代码可获取一个名叫databaseUtility的特性:
3.3.3 获取Session对象及其特性通过ExternalContext对象可访问与当前请求相关联的Session对象。getSession方法可取回当前用户的javax.servlet.http.HttpSession对象,如果当前用户没有相应的Session对象,此方法的行为由传入的参数决定:如果为该方法传入了一个true值,它会创建一个Session对象;否则,它会返回null。下面是getSession方法的签名:public abstract Object getSession(boolean create)此方法其实是javax.servlet.http.HttpServletRequest接口中getSession方法的包装器。getSessionMap方法返回一个包含与当前请求相关联的Session对象里所有特性名/值对的Map对象。下面是它的方法签名:public abstract java.util.getSessionMap()要获取Session对象里的特性,可调用Map类的get方法,传入要获取的特性名即可。文档中没有指明在当前请求没有相应Session对象的情况下,此方法是返回null还是一个空的Map对象。所以在调用Map的get方法之前,需要先检查Map是否为null。下面的代码是获取Session特性的例子:
Object sessionAttribute = null;
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map sessionMap = externalContext.getSessionMap();
if (sessionMap!=null)sessionAttribute = sessionMap.get(key);
最后一行的key是一个包含特性名的字符串。
3.3.4 获取ServletContext对象的初始参数getInitParameter方法是ServletContext对象的getInitParameter方法的包装器,用这个方法可以提取在部署描述符(web.xml文件)里用context-init元素指定的初始参数值。此方法的签名如下:public abstract String getInitParameter(String parameterName)举例来说,如果在部署描述符声明了如下context-init元素:<context-param><param-name>contactPerson</param-name><param-value>Scott Jobim</param-value></context-param>下面代码中的字符串变量initParam的值会是
Scott Jobim。FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
String initParam = externalContext.getInitParameter("contactPerson");
getInitParameterMap方法返回一个包含ServletContext对象中全部初始参数的Map对象。其签名如下:public abstract java.util.Map getInitParameterMap()为了获取一个初始参数的值,使用Map对象的get方法,同时传递初始参数的名称。比如,下面的代码把初始参数databaseName的值输出到控制台。
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map paramMap = externalContext.getInitParameterMap();
if (paramMap!=null) {System.out.println(paramMap.get"databaseName"));}
3.3.5 获取Request对象的特性getRequestMap方法返回一个包含当前Request对象中全部特性名/值对的Map对象。其方法签名如下:public abstract java.util.Map getRequestMap()作为一个例子,下面的代码可用来提取Request对象里的特性:
Object requestAttribute = null;FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map requestMap = externalContext.getRequestMap();if (requestMap!=null)requestAttribute = requestMap.get(key);最后一行里的Key是一个包含要提取的属性名的字符串。
3.3.6 访问Request对象里的参数名和值getRequestParameterMap、getRequestParameterNames和getRequestParameterValuesMap方法可用来访问Request对象里的参数名和值。getRequestParameterMap返回一个包含Request对象里全部参数名/值对的Map对象。其签名如下:public abstract java.util.Map getRequestParameterMap()作为一个例子,下面的代码可用来提取名为id的请求参数的值:
getRequestParameterNames方法返回一个包含全部请求参数名的Iterator。此方法其实是ServletRequest.getParameterNames方法的包装器。不同的是,ExternalContext类的getRequestParameterNames返回一个Iterator,而不是java.util.Enumeration。此方法的签名如下:
public abstract java.util.Iterator getRequestParameterNames()
作为一个例子,下面的代码把所有的请求参数名/值对输出到控制台。
getRequestParameterValuesMap方法返回一个包含Request对象里全部参数名/值对的Map对象。此方法与getRequestParameterMap方法很相似,但getRequestParameterValuesMap可返回全部相同参数名的值。在此方法返回的Map对象上调用get(key)方法,这一点等同于获取当前请求的ServletRequest并在其上调用getParameterValues(key)。也就是说,Map对象返回的是一个字符串数组。GetRequestParameterValuesMap方法的签名如下:public abstract java.util.Map getRequestParameterValuesMap()下面例子中的代码把请求参数id的全部值输出到控制台。
3.3.7 获取请求头的名和值getRequestHeaderMap方法返回一个包含当前请求中全部头名/值对的Map对象。其方法签名如下:
public abstract java.util.Map getRequestHeaderMap()
举个例子来说,下面的代码提取host头的值:
注意:报头的名称是不区分大小写的。比如,对getRequestHeaderMap返回的Map对象分别用host、Host和Host作为参数来调用get方法,其结果是一样的。getRequestHeaderValuesMap方法与getRequestHeaderMap方法相似。但在getRequestHeader
ValuesMap方法返回的Map对象上调用get方法会得到一个字符串的数组。getRequestHeaderValuesMap方法的签名如下:
public abstract java.util.Map getRequestHeaderValuesMap()
在getRequestHeaderValuesMap方法返回的Map对象上调用get方法会返回一个java.util.Enumeration值。下面的代码使用getRequestHeaderValuesMap方法来获取一个包含全部头名/值对的Map对象,然后在此Map对象上调用get方法以获取全部Accept-Encoding头的值,并将结果输出到控制台。
●getContext 此方法可获取Web应用中与当前请求相关联的ServletContext对象。其签名如下:public abstract Object getContext()
●getRequest 此方法可获取代表当前正在处理的请求的ServletRequest对象。其签名如下:public abstract Object getRequest()
●getResponse 此方法可获取代表当前正在呈现的响应的ServletResponse对象。其签名如下:public abstract Object getResponse()这些方法都是返回一个java.lang.Object对象,不是servlet特有的类型,这样就可以使JSF实现独立于其运行的环境。比如,JSF既可用于Web容器,也可以用于其他容器,如portlet等。
3.3.2 获取ServletContext特性getApplicationMap方法返回一个包含ServletContext对象里全部特性名/值对的Map对象。下面是此方法的签名:public abstract java.util.Map getApplication()作为一个例子,下面的代码可获取一个名叫databaseUtility的特性:
Object contextAttribute = null; FacesContext facesContext = FacesContext.getCurrentInstance(); ExternalContext externalContext = facesContext.getExternalContext(); Map contextMap = externalContext.getApplicationMap(); if (contextMap!=null)contextAttribute = contextMap.get("databaseUtility");
3.3.3 获取Session对象及其特性通过ExternalContext对象可访问与当前请求相关联的Session对象。getSession方法可取回当前用户的javax.servlet.http.HttpSession对象,如果当前用户没有相应的Session对象,此方法的行为由传入的参数决定:如果为该方法传入了一个true值,它会创建一个Session对象;否则,它会返回null。下面是getSession方法的签名:public abstract Object getSession(boolean create)此方法其实是javax.servlet.http.HttpServletRequest接口中getSession方法的包装器。getSessionMap方法返回一个包含与当前请求相关联的Session对象里所有特性名/值对的Map对象。下面是它的方法签名:public abstract java.util.getSessionMap()要获取Session对象里的特性,可调用Map类的get方法,传入要获取的特性名即可。文档中没有指明在当前请求没有相应Session对象的情况下,此方法是返回null还是一个空的Map对象。所以在调用Map的get方法之前,需要先检查Map是否为null。下面的代码是获取Session特性的例子:
Object sessionAttribute = null;
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map sessionMap = externalContext.getSessionMap();
if (sessionMap!=null)sessionAttribute = sessionMap.get(key);
最后一行的key是一个包含特性名的字符串。
3.3.4 获取ServletContext对象的初始参数getInitParameter方法是ServletContext对象的getInitParameter方法的包装器,用这个方法可以提取在部署描述符(web.xml文件)里用context-init元素指定的初始参数值。此方法的签名如下:public abstract String getInitParameter(String parameterName)举例来说,如果在部署描述符声明了如下context-init元素:<context-param><param-name>contactPerson</param-name><param-value>Scott Jobim</param-value></context-param>下面代码中的字符串变量initParam的值会是
Scott Jobim。FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
String initParam = externalContext.getInitParameter("contactPerson");
getInitParameterMap方法返回一个包含ServletContext对象中全部初始参数的Map对象。其签名如下:public abstract java.util.Map getInitParameterMap()为了获取一个初始参数的值,使用Map对象的get方法,同时传递初始参数的名称。比如,下面的代码把初始参数databaseName的值输出到控制台。
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map paramMap = externalContext.getInitParameterMap();
if (paramMap!=null) {System.out.println(paramMap.get"databaseName"));}
3.3.5 获取Request对象的特性getRequestMap方法返回一个包含当前Request对象中全部特性名/值对的Map对象。其方法签名如下:public abstract java.util.Map getRequestMap()作为一个例子,下面的代码可用来提取Request对象里的特性:
Object requestAttribute = null;FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
Map requestMap = externalContext.getRequestMap();if (requestMap!=null)requestAttribute = requestMap.get(key);最后一行里的Key是一个包含要提取的属性名的字符串。
3.3.6 访问Request对象里的参数名和值getRequestParameterMap、getRequestParameterNames和getRequestParameterValuesMap方法可用来访问Request对象里的参数名和值。getRequestParameterMap返回一个包含Request对象里全部参数名/值对的Map对象。其签名如下:public abstract java.util.Map getRequestParameterMap()作为一个例子,下面的代码可用来提取名为id的请求参数的值:
String id = null; FacesContext facesContext = FacesContext.getCurrentInstance(); ExternalContext externalContext = facesContext.getExternalContext(); Map requestParameterMap = externalContext.getRequestParameterMap(); if (requestParameterMap!=null) id = (String) requestParameterMap.get("id");
getRequestParameterNames方法返回一个包含全部请求参数名的Iterator。此方法其实是ServletRequest.getParameterNames方法的包装器。不同的是,ExternalContext类的getRequestParameterNames返回一个Iterator,而不是java.util.Enumeration。此方法的签名如下:
public abstract java.util.Iterator getRequestParameterNames()
作为一个例子,下面的代码把所有的请求参数名/值对输出到控制台。
FacesContext facesContext = FacesContext.getCurrentInstance(); ExternalContext externalContext = facesContext.getExternalContext(); Map requestParameterMap = externalContext.getRequestParameterMap(); Iterator parameterNames = externalContext.getRequestParameterNames(); while (parameterNames.hasNext()) { String parameterName = (String) parameterNames.next(); String parameterValue =(String) requestParameterMap.get(parameterName); System.out.println(parameterName + " : " + parameterValue); }
getRequestParameterValuesMap方法返回一个包含Request对象里全部参数名/值对的Map对象。此方法与getRequestParameterMap方法很相似,但getRequestParameterValuesMap可返回全部相同参数名的值。在此方法返回的Map对象上调用get(key)方法,这一点等同于获取当前请求的ServletRequest并在其上调用getParameterValues(key)。也就是说,Map对象返回的是一个字符串数组。GetRequestParameterValuesMap方法的签名如下:public abstract java.util.Map getRequestParameterValuesMap()下面例子中的代码把请求参数id的全部值输出到控制台。
String[] id = null; FacesContext facesContext = FacesContext.getCurrentInstance(); ExternalContext externalContext = facesContext.getExternalContext(); Map requestParameterValuesMap = externalContext.getRequestParameterValuesMap(); if (requestParameterValuesMap!=null) { id = (String[]) requestParameterValuesMap.get("id");// print all values of id for (int i=0; i<id.length; i++) { System.out.println(id[i]); } }
3.3.7 获取请求头的名和值getRequestHeaderMap方法返回一个包含当前请求中全部头名/值对的Map对象。其方法签名如下:
public abstract java.util.Map getRequestHeaderMap()
举个例子来说,下面的代码提取host头的值:
String host = null; FacesContext facesContext = FacesContext.getCurrentInstance(); ExternalContext externalContext = facesContext.getExternalContext(); Map headerMap = externalContext.getRequestHeaderMap(); if (headerMap!=null) { host = (String) headerMap.get("host"); System.out.println(host); }
注意:报头的名称是不区分大小写的。比如,对getRequestHeaderMap返回的Map对象分别用host、Host和Host作为参数来调用get方法,其结果是一样的。getRequestHeaderValuesMap方法与getRequestHeaderMap方法相似。但在getRequestHeader
ValuesMap方法返回的Map对象上调用get方法会得到一个字符串的数组。getRequestHeaderValuesMap方法的签名如下:
public abstract java.util.Map getRequestHeaderValuesMap()
在getRequestHeaderValuesMap方法返回的Map对象上调用get方法会返回一个java.util.Enumeration值。下面的代码使用getRequestHeaderValuesMap方法来获取一个包含全部头名/值对的Map对象,然后在此Map对象上调用get方法以获取全部Accept-Encoding头的值,并将结果输出到控制台。
FacesContext facesContext = FacesContext.getCurrentInstance(); ExternalContext externalContext = facesContext.getExternalContext(); Map headerValuesMap = externalContext.getRequestHeaderValuesMap(); if (headerValuesMap!=null) { Enumeration headers =(Enumeration) headerValuesMap.get("Accept-Encoding"); while (headers.hasMoreElements()) { String value = (String) headers.nextElement(); System.out.println(value); } }
发表评论
-
spring整合struts的3种配置方式
2011-08-08 01:43 896实例讲解spring整合struts的几种方式 1,使用Sp ... -
抽象语法树(AST)
2010-01-16 04:02 9620原文出自:http://blog.csdn.net/zhouh ... -
java虚拟机参数
2009-11-19 01:21 1086下面的讨论以Windows平台的Sun MicroSystem ... -
JVM 堆内存(heap)设置选项
2009-11-18 22:17 3049JVM 堆内存(heap)设置选项 参数格式 说 ... -
java堆栈
2009-11-15 11:12 1574java中堆栈(stack)和堆(heap) 一、堆栈(st ... -
Tomcat启动过程
2009-04-01 11:37 1127今天在独立的Tomcat中部 ... -
JSF如何使用ExternalContext类 2
2008-11-04 14:51 23483.3.8 获取CookiegetRequestCookie ... -
JSF中如何使用FacesContext类
2008-11-04 14:26 2224在Faces API中有两个类是要经常使用的. 一个是Face ... -
JSF Mbean
2008-09-04 20:23 1213首先从Model1中的JavaBean说起,大家知道,Mode ... -
JSF FacesContext 详解 三
2008-08-28 15:48 40723.3.6 访问Request对象里的参数名和值 getRe ... -
JSF FacesContext 详解 二
2008-08-28 15:47 2675JSF FacesContext 详解 二 3. ... -
JSF FacesContext 详解 一
2008-08-28 15:45 2204JSF FacesContext 详解 一 ... -
一个jsf的face-config.xml看不懂
2008-08-25 16:46 3509刚学习jsf,公司一个jsf工程里的face-config.x ... -
jar命令详解
2008-08-20 00:17 1198自己学习记录的资料 1. ... -
jmx使用实例(待加注析正式发布)
2008-08-20 00:00 0JMX 在JDK 1.5中已经是J2SE的一个标准组成部分了。 ... -
最近一个工作要用到jmx所以特意找了一些资料了解jmx,好的给大家分享
2008-08-19 16:29 1951JMX(Java Management Extension ... -
jsf的eclipse开发插件
2008-08-18 12:36 1176大家可以介绍个好的jsf eclipse开发插件吗?要支持js ... -
spring中调用存储过程
2008-08-06 02:27 4216org.springframework.jdbc.object ... -
关于使用hibernate的关联关系还是使用视图的问题
2008-08-02 02:07 1539现在做的工程是HHS框架结构的,在使用hibernate的数据 ... -
java序列化备份及还原
2008-07-29 21:05 1812今天工作遇到一个要把查询结果的List序列化保存到本地机,再上 ...
相关推荐
本文将详细讲解如何在JSF中使用`ExternalContext`类。 首先,`ExternalContext`类主要提供了以下三种方法来获取Servlet环境中的核心对象: 1. **获取ServletContext对象**: - `getContext()`方法返回与当前请求...
4. 登录成功后,可以使用`FacesContext`的`externalContext()`方法重定向用户: ```java FacesContext context = FacesContext.getCurrentInstance(); context.getExternalContext().redirect("success.xhtml"); ```...
1. **JSF组件库**:JSF框架包含多个组件库,如PrimeFaces、RichFaces等,它们提供了丰富的UI组件,包括登录表单所需的输入字段和按钮。在本教程中,你可能将学习如何使用这些组件来构建登录界面。 2. **登录表单**...
1. **JSF架构**: JSF的架构围绕组件模型、事件模型和请求处理生命周期展开。核心API包括多个包,如`javax.faces`、`javax.faces.application`、`javax.faces.component`等,它们提供了框架的基础构建块。 2. **...
总的来说,JSF实例“UserLogin”展示了如何使用JSF组件和生命周期来处理用户登录和信息查询。它涉及到视图的创建、用户输入的处理和验证、业务逻辑的执行,以及数据的持久化和展示。通过这样的实例,开发者可以深入...
- **页面跳转**:登录成功后,JSF可以通过导航规则(Navigation Case)或`FacesContext`的`externalContext.redirect()`方法将用户重定向到其他页面。例如,登录成功后,用户可能被定向到主页面或个人中心。 **2. ...
1. **使用 `<f:param>` 标签传递参数**: 这是最基础的传递参数方式,常用于链接或按钮的点击事件。在JSF页面中,你可以通过`<f:param>`标签在`<h:commandLink>`或`<h:commandButton>`内定义参数。例如: ```xml ...
1. **前端页面(JSF Facelet)**:在这里,我们需要定义`<h:inputFile>`组件,可能还需要一个提交按钮。例如: ```html 上传" action="#{fileUploadBean.upload}" /> ``` 这里的`fileUploadBean`是后台bean,`...
在 Faces API 中,FacesContext 和 ExternalContext 是两个经常使用的类,本文将详细介绍 FacesContext 的编程接口和使用方法。 FacesContext 的实例是在 FacesServlet 对象中创建的,每个 JSF 请求都会获取一个 ...
在`faces-config.xml`文件中定义导航规则,或者在bean中使用`ExternalContext`进行导航。 8. **响应式设计**:确保你的页面在不同设备和屏幕尺寸上都能正常显示,可能需要应用CSS样式和媒体查询。 9. **测试与调试...
对于JSF 1.2版本,可以使用Application对象的evaluateValueExpressionGet()方法直接评估EL表达式,并强制转换为指定类型。 值得注意的是,第3种方法在JSF 1.1中并不适用,因为它不包含evaluateValueExpressionGet...
1. **JSF框架概述** JSF是一种MVC(Model-View-Controller)架构的框架,用于创建交互式的Web应用程序。它将用户界面组件与后端业务逻辑分离开来,提供了一种声明式编程方式,降低了开发复杂性。JSF组件库包含许多...
此外,你可以考虑使用JSF的`<f:viewAction>`或自定义的组件行为来在页面加载时检测会话状态,从而提供更即时的反馈。 总结来说,通过创建一个监听恢复视图阶段的`PhaseListener`,并捕获`ViewExpiredException`,...
1. 使用`ExternalContext.redirect()`方法: 在JSF中,我们可以直接在Managed Bean的方法中使用`FacesContext`的`getExternalContext()`来实现重定向。以下是一个例子: ```java import javax.faces.context....
使用UIUtil类,开发者可以更方便地在JSF应用程序中访问Servlet环境变量,例如: ```java String initParamValue = UIUtil.getServletContext().getInitParameter("myInitParam"); ``` 这比直接通过FacesContext的...
3. **JSF(JavaServer Faces)**:通过FacesContext和ExternalContext与JasperReport交互。 **五、JasperReport高级特性** 1. **表达式(Expressions)**:在报表设计中使用Java表达式动态计算值。 2. **样式和...
8. **外部环境交互**: `javax.faces.context.ExternalContext`对象在JavaServer Faces (JSF) 应用程序中提供对应用服务器环境的访问。`extCont.redirect(url)`方法用于服务器端的URL重定向。 9. **在新窗口打开链接...
在这段代码中,我们首先获取了当前的`FacesContext`对象,然后通过`ExternalContext`获取到了`HttpServletResponse`对象。接下来,我们调用了`sendRedirect`方法,并传入了目标URL。最后,调用了`responseComplete`...
1. **XPages基础**: - XPages是IBM Lotus Domino的一种富互联网应用程序(RIA)开发框架,允许开发者创建基于Web的动态用户界面,类似于传统的Lotus Notes客户端体验。 - XPages构建在JavaServer Faces (JSF) ...
- **externalContext**:外部上下文。 #### 渲染视图 Spring Web Flow支持多种视图技术,包括但不限于: - **JSP**:Java Server Pages。 - **Freemarker**:Freemarker模板引擎。 - **Thymeleaf**:...