- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
FacesContext
和有什么区别和 ExternalContext
?我什么时候可以使用其中一种?一个有什么,另一个有什么?
以下示例来自 JavaServer Faces 第 3 版一书:
<h:commandButton ... actionListener="#{rushmore.handleMouseClick}" />
public void handleMouseClick(ActionEvent e) {
FacesContext context = FacesContext.getCurrentInstance();
String clientId = e.getComponent().getClientId(context);
Map<String, String> requestParams = context.getExternalContext().getRequestParameterMap();
// ...
}
ExternalContext
中的请求参数?什么是
clientId
?它是在应用程序启动时由 JSF 生成的吗?
最佳答案
仔细查看他们的 javadocs 以了解他们提供的方法以及这些方法的具体作用。
FacesContext
javadoc ExternalContext
javadoc FacesContext
通常提供对 JSF 特定工件的访问,这些工件与 JSF 设计为在其上运行的“底层”Servlet 或 Portlet API 没有任何关系。例如。创建转换器、验证器、组件、EL 表达式等,并获取有关 View 根、支持的语言环境等的信息,并添加阶段监听器、系统事件监听器等。特定于 JSF API 的所有内容。
ExternalContext
通常提供对 JSF 当前“在幕后”使用的 Servlet 或特定于 Portlet 的工件的访问。例如,在 Servlet 容器上运行时,
HTTP servlet request ,
HTTP servlet response ,
HTTP session和
Servlet context并且本质上也是他们所有的文物。单击这些链接,您会看到它们依次提供同样由
ExternalContext
委托(delegate)的方法。 ,如
getRequestParameterMap()
.另见
the javadoc .是的,也单击该链接,您会看到它明确提到了 servlet 请求:
Servlet: This must be the set of parameters available via the
javax.servlet.ServletRequest
methodsgetParameter()
andgetParameterNames()
.
<h:inputText>
,生成 HTML
<input>
元素,它也变成
name
像这样的属性
<input type="text" id="formId:inputId" name="formId:inputId" ... />
formId:inputId
正是 JSF 客户端 ID。它成为请求参数名称。命令按钮的 HTML 表示也有
name
最终作为请求参数名称,按钮的值作为参数值。
关于jsf-2 - FacesContext 和 ExternalContext 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15850162/
我正在检查 this template 的代码来自 OmniFaces Showcase app ,当我遇到一个p:selectOneMenu中使用的以下条件时: disabled="#{facesC
我想在 Websphere 上部署一个企业项目。 我得到以下异常。 可能是什么原因? [03.09.12 11:21:05:636 CEST] 0000001a webapp E com
我正在集成 SWF 2.2.1、Primefaces 2.2.1、JSF 2、Spring Security 3、Spring 3.1.0M1。我能够访问 Spring web-flow xml 中提
当我点击应用程序 URL (http://localhost:9082/pages/upload.jsf) 时,浏览器上只显示“Error:500 StackOverflowError”。根据我在这个
当我点击应用程序 URL (http://localhost:9082/pages/upload.jsf) 时,浏览器上只显示“Error:500 StackOverflowError”。根据我在这个
如何在过滤器中检索 FacesContext? 我遵循以下关于如何检索 FacesContext 的文章在 Filter : http://ocpsoft.org/java/jsf-java/jsf-
FacesContext 有何用途? 它具体是在哪里实现的? 最佳答案 引自JSF 2.0 specification第6.1章: FacesContext JSF defines the javax
嗨, 这个问题来自之前的answered提问者 BalusC 。答案摘录如下: This happens only if under the covers a forward by RequestDi
我的jsp页面是:主页.jsp Insert title here Employee Management P
在我的 previous question我遇到了从登录表单显示验证消息的问题。该问题现已解决,但这次我无法显示带有 FacesContex#addMessage 的自定义消息. 使用 JSF + P
莫哈拉 2.2.12 这是接管 FacesContext 实例化的一段代码: FacesContext context = facesContextFactory.getFacesContext
我试图通过在FacesContext类的FacesContext.getCurrentInstance()方法中调用run()来获取Runnable,但它返回null。 public class Ta
同时通过javadoc of FacesContext ,我遇到了这句话 The instance remains active until its release() method is calle
我已经在 Icefaces 论坛上问过这个问题,但同时我意识到这是一个更通用的问题。 当我在 MDB 中收到消息时,我想更新 JSF 页面的某些部分。 问题是,如何从 EJB 容器中获取 FacesC
无法在自生成的线程中获得“FacesContext.getCurrentInstance()”。 需要根据后端流程动态更新组件。通过创建一个线程来监视进程并与 p:poll 一起回调组件更新来实现相同
这个问题在这里已经有了答案: Can I update a JSF component from a JSF backing bean method? (5 个回答) 5年前关闭。 实际上,当出现 k
我正在尝试向 JSF 应用程序添加一些单元测试。此应用程序没有严重依赖任何最佳实践,因此许多服务方法使用 FacesContext从托管 session bean 中提取数据,如下所示: (这是在一个
我有一个问题。我需要知道我的页面是否存在全局错误。这是因为我有 2 个不同的 h:messages (错误容器) 一个将显示业务相关消息,另一个将仅显示验证消息。由于业务需求,有两条消息。 当生成
我在两台不同的机器上有相同的代码。一个在工作,另一个没有!代码在这里...你能发现我错过了什么吗? public void urlParameters() { FacesContext con
问题如下:我需要序列化用户 session ,因此,在服务器重新启动后它仍然存在。 使用 JavaEE 和 Tomcat 7 与 implements Serialized 配合使用效果很好,但问题在
我是一名优秀的程序员,十分优秀!