JSF参数传递方式:
1. <f:param name=" " value=""></f:param>
注意:该标签只能传递String类型的参数,如果value的值设为一个对象,则会调用该类的toString()方法获得一个String类型的值作为参数。
1.1. 页面到Bean的参数传递
页面中设置参数:
<h:form>
<h:commandLink value="Test2" action="#{paramBean.test}">
<f:param name="name" value="zhang"></f:param>
<f:param name="id" value="123456"></f:param>
</h:commandLink>
</h:form>
注意:这里只能使用h:commandLink标签,而不能使用h:commandButton标签!
后台取参数:
(1) 通过Request对象取值
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
request.getParameter("name");
(2)通过RequestParameterMap取值
Map varMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
varMap.get("id");
(3)通过配置文件进行Bean的属性值注入,在Bean的方法中直接使用属性
<managed-bean>
<managed-bean-name>paramBean</managed-bean-name>
<managed-bean-class>com.spg.bean.ParamBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>id</property-name>
<property-class>java.lang.String</property-class>
<value>#{param.id} </value>
</managed-property>
</managed-bean>
页面到页面的参数传递
页面中设置参数:
(1)
<h:outputLink value="param2.jsf">
<h:outputText value="Test4"></h:outputText>
<f:param name="name" value="chen"></f:param>
<f:param name="id" value="123456"></f:param>
</h:outputLink>
(2)
<h:outputLink value="param2.jsf?name=chen&id=123456">
<h:outputText value="Test4"></h:outputText>
</h:outputLink>
注意:以上两种方法,不能同时使用!
页面中取参数:
(1) 使用JSF的值表达式
<h:outputText value="#{param.name}"></h:outputText>
<h:outputText value="#{param.id}"></h:outputText>
(2) 使用JSP的表达式
<%=request.getParameter("name")%>
<%=request.getParameter("id")%>
2. Backing Bean 与 h:inputHidden
2.1页面到Bean的参数传递
页面中设置参数:
<h:form>
<h:inputHidden value="123456" binding="#{backingBean.idComponent}"></h:inputHidden>
<h:commandButton value="登录" action="#{paramBean.login}"></h:commandButton>
</h:form>
后台取参数:
FacesContext context = FacesContext.getCurrentInstance();
BackingBean backBean =(BackingBean)context.getApplication().getVariableResolver().resolveVariable(context,"backingBean");//该方法已经过时
BackingBean bean =(BackingBean)context.getApplication().getELResolver().getValue(context.getELContext(), null, "backingBean");
backBean.getIdComponent().getValue();
bean.getIdComponent().getValue();
2.2页面到页面的参数传递
页面中设置参数:
<h:form>
<h:inputHidden value="123456" binding="#{backingBean.idComponent}"></h:inputHidden>
<h:commandButton value="Test5" action="param"></h:commandButton>
<h:commandLink value="Test6" action="param"></h:commandLink>
</h:form>
注意:h:outputLink 标签不能使用该方式传递参数!
页面中取参数:
<h:outputText value="#{backingBean.idComponent.value}"></h:outputText>
3. 通过session(application)对象传递
3.1页面到Bean的参数传递
页面中设置参数:
<h:form>
<%session.setAttribute("name","hujilie"); %>
<%application.setAttribute("id","123456"); %>
<h:commandButton value="Test8" action="#{paramBean.test2}"></h:commandButton>
<h:commandLink value="Test8" action="#{paramBean.test2}"></h:commandLink>
</h:form>
后台取参数:
FacesContext context = FacesContext.getCurrentInstance();
Map sessionMap =context.getExternalContext().getSessionMap();
Map applicationMap = context.getExternalContext().getApplicationMap();
HttpSession session =(HttpSession) context.getExternalContext().getSession(true);
ServletContext application = (ServletContext)context.getExternalContext().getContext();
sessionMap.get("name");
applicationMap.get("id");
session.getAttribute("name");
application.getAttribute("id");
3.2页面到页面的参数传递
页面中设置参数:
<h:form>
<%session.setAttribute("name","hujilie"); %>
<%application.setAttribute("id","123456"); %>
<h:outputLink value="param2.jsf">Test10</h:outputLink>
</h:form>
页面中取参数:
<h:outputText value="#{sessionScope.name}"></h:outputText><br>
<h:outputText value="#{applicationScope.id}"></h:outputText>
4. f:attribute标签传递
4.1页面到Bean的参数传递
页面中设置参数:
<h:form>
<h:commandButton action="#{paramBean.test3}" value="Test11" actionListener="#{paramBean.changeName}">
<f:attribute name="name" value="hujilie"/>
</h:commandButton>
<h:commandLink action="#{paramBean.test3}" value="Test12" actionListener="#{paramBean.changeName}">
<f:attribute name="name" font-size: 10pt; color: #7f007f; font-fa
分享到:
相关推荐
**JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建和呈现Web应用程序。...通过深入学习和实践JSF中文教程以及参数传递方式,开发者可以更好地利用其功能,构建出符合现代Web标准的应用程序。
在JavaServer Faces (JSF)框架中,参数传递是一个关键的操作,它允许数据在不同页面之间或者组件之间流动。JSF 提供了多种方法来处理参数传递,包括使用`<f:param>`标签、Managed Bean的属性绑定以及共享Request ...
在JSF(JavaServer Faces)框架中,参数...总结来说,JSF中参数传递的核心在于`f:param`标签的使用,以及在后台通过不同方式获取这些参数。通过熟练掌握这些技巧,开发者能够更好地在JSF应用中实现数据交互和页面导航。
- **JSP页面**:可以直接在JSP页面中调用`downloadFile`方法,通过传递参数获取文件名,并处理异常。示例代码显示了如何从请求参数中获取文件名,然后调用`FileUtils.downloadFile`方法。 7. **JSF与JSP的集成**:...
MyFaces 提供了一个有用的组件 `<t:updateListener>`,可用于跨页面传递参数。在实际应用中,建议传递模型对象而不是简单的数值类型。这是因为 JSF 设计初衷即是面向对象的页面开发,传递模型对象能够更好地遵循这一...
4. `h:outputFormat`允许格式化输出,它使用`f:param`子标签传递参数。如示例所示,`”{0} is {1} years old!” >...</h:outputFormat>`将输出"Bill is 38 years old!",`f:param`标签内的`value`属性用于传递参数值...
JavaServer Faces (JSF) 是一个用于构建用户界面的Java EE框架,它提供了一种组件化的方式来创建Web应用程序。JSF 1.2是该框架的一个重要版本,发布于2007年,带来了许多增强功能和改进,提升了开发者的体验和应用的...
**决定发送什么**:你可以控制哪些数据随请求一起发送,比如通过`a4j:actionparam`传递参数,或者更新整个组件树的一部分。 **决定改变什么**:在服务器端处理完请求后,Ajax4JSF可以更新页面上的特定区域,而无需...
**jsf传参.docx** 详细介绍了如何在JSF中传递参数,这可能涉及到请求参数、会话参数、属性绑定等,是理解和实现JSF应用间通信的关键。 **java环境变量配置.txt** 涉及到Java开发的基础,Java环境变量如JAVA_HOME、...
FacesContext是JSF框架中的核心类,它封装了与请求相关的所有信息,包括请求参数、视图状态、消息等。开发人员可以通过FacesContext获取当前请求的状态和执行各种操作。 4. **Managed Beans** Managed Beans是JSF...
JavaScript Server Faces(JSF)是Java平台上用于构建Web...尝试运行并调试代码,查看每个部分如何协同工作,这是学习JSF的最佳方式。同时,不要忘记查阅官方文档和社区资源,以便更好地掌握JSF的高级特性和最佳实践。
4. **EL(Expression Language)**:JSF使用EL表达式来绑定UI组件和后台Bean的属性,使得数据能够在视图和模型之间双向传递。 5. **FacesContext**:它是JSF框架的核心上下文对象,提供了与当前请求相关的所有信息...
JavaServer Faces (JSF) 是一个用于构建服务器端Web应用程序的Java框架,它提供了一种组件化的方式来构建用户界面,并且与模型和控制器部分紧密结合。JSF的核心特性包括丰富的UI组件库、事件处理机制以及与JavaBeans...
4. **EL**: 提供了在视图和模型之间传递数据的方式,允许开发者在JSP或Facelets页面中直接引用Bean的属性。 5. **Converter**: 用于在JSF组件和模型之间进行数据转换,例如将字符串转换为日期。 6. **...
Expression Language (EL) 是JSF中的一个强大特性,用于在视图层和模型层之间传递数据。通过`#{}` 符号,我们可以引用bean属性,如`#{userBean.username}`。 5. **Facelets视图** JSF2默认使用Facelets作为视图...
JSF的主要目标是简化用户界面组件的构建和管理,提供MVC(Model-View-Controller)架构支持,以及提供一种与后端业务逻辑集成的标准化方式。在本教程中,我们将深入探讨JSF的核心概念、工作原理以及如何有效地利用它...
- **a4j:actionparam**:传递参数到Ajax请求。 - **a4j:status**:显示Ajax请求的状态。 - **a4j:loadBundle** 和 **a4j:mediaOutput**:分别处理资源加载和多媒体输出。 ### 4. **Ajax4jsf的换肤功能** Ajax4jsf...
1. **FacesContext**: 这是JSF应用的核心上下文对象,它在请求处理期间提供关于当前请求和响应的信息,如用户的会话、应用程序范围的数据以及访问请求参数的方法。 2. **UIComponent**: 表示可渲染的用户界面组件。...
- **功能**: 传递额外的参数到服务器端处理方法。 - **属性**: `name`、`value`等。 8. **a4j:status** - **功能**: 显示请求状态信息。 - **属性**: `id`、`style`等。 9. **a4j:loadBundle** - **功能**: ...
3. **配置文件**:如web.xml,配置JSF的初始化参数和Servlet映射。 4. **数据库脚本**:创建用于存储文件元数据的表结构。 5. **DAO(Data Access Object)层**:封装与数据库的交互,可能包含处理文件记录的CRUD...