`

JSF参数传递方式

    博客分类:
  • JSF
阅读更多

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中文教程+JSF参数传递方式

    **JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建和呈现Web应用程序。...通过深入学习和实践JSF中文教程以及参数传递方式,开发者可以更好地利用其功能,构建出符合现代Web标准的应用程序。

    JSF参数传递doc

    在JavaServer Faces (JSF)框架中,参数传递是一个关键的操作,它允许数据在不同页面之间或者组件之间流动。JSF 提供了多种方法来处理参数传递,包括使用`&lt;f:param&gt;`标签、Managed Bean的属性绑定以及共享Request ...

    jsf传递参数的说明

    在JSF(JavaServer Faces)框架中,参数...总结来说,JSF中参数传递的核心在于`f:param`标签的使用,以及在后台通过不同方式获取这些参数。通过熟练掌握这些技巧,开发者能够更好地在JSF应用中实现数据交互和页面导航。

    JSF文件下载实现

    - **JSP页面**:可以直接在JSP页面中调用`downloadFile`方法,通过传递参数获取文件名,并处理异常。示例代码显示了如何从请求参数中获取文件名,然后调用`FileUtils.downloadFile`方法。 7. **JSF与JSP的集成**:...

    JSF 一些经验 .doc

    MyFaces 提供了一个有用的组件 `&lt;t:updateListener&gt;`,可用于跨页面传递参数。在实际应用中,建议传递模型对象而不是简单的数值类型。这是因为 JSF 设计初衷即是面向对象的页面开发,传递模型对象能够更好地遵循这一...

    JSF+HTML标签总结

    4. `h:outputFormat`允许格式化输出,它使用`f:param`子标签传递参数。如示例所示,`”{0} is {1} years old!” &gt;...&lt;/h:outputFormat&gt;`将输出"Bill is 38 years old!",`f:param`标签内的`value`属性用于传递参数值...

    jsf1.2源代码下载

    JavaServer Faces (JSF) 是一个用于构建用户界面的Java EE框架,它提供了一种组件化的方式来创建Web应用程序。JSF 1.2是该框架的一个重要版本,发布于2007年,带来了许多增强功能和改进,提升了开发者的体验和应用的...

    ajax4jsf中文用户指南

    **决定发送什么**:你可以控制哪些数据随请求一起发送,比如通过`a4j:actionparam`传递参数,或者更新整个组件树的一部分。 **决定改变什么**:在服务器端处理完请求后,Ajax4JSF可以更新页面上的特定区域,而无需...

    jsf文档+jsh案例+配置文档

    **jsf传参.docx** 详细介绍了如何在JSF中传递参数,这可能涉及到请求参数、会话参数、属性绑定等,是理解和实现JSF应用间通信的关键。 **java环境变量配置.txt** 涉及到Java开发的基础,Java环境变量如JAVA_HOME、...

    JSF API

    FacesContext是JSF框架中的核心类,它封装了与请求相关的所有信息,包括请求参数、视图状态、消息等。开发人员可以通过FacesContext获取当前请求的状态和执行各种操作。 4. **Managed Beans** Managed Beans是JSF...

    jsf一个比较全的程序

    JavaScript Server Faces(JSF)是Java平台上用于构建Web...尝试运行并调试代码,查看每个部分如何协同工作,这是学习JSF的最佳方式。同时,不要忘记查阅官方文档和社区资源,以便更好地掌握JSF的高级特性和最佳实践。

    JSF编程_程序设计

    4. **EL(Expression Language)**:JSF使用EL表达式来绑定UI组件和后台Bean的属性,使得数据能够在视图和模型之间双向传递。 5. **FacesContext**:它是JSF框架的核心上下文对象,提供了与当前请求相关的所有信息...

    JSF学习笔记 jsF

    JavaServer Faces (JSF) 是一个用于构建服务器端Web应用程序的Java框架,它提供了一种组件化的方式来构建用户界面,并且与模型和控制器部分紧密结合。JSF的核心特性包括丰富的UI组件库、事件处理机制以及与JavaBeans...

    JSF api,很详细,很全

    4. **EL**: 提供了在视图和模型之间传递数据的方式,允许开发者在JSP或Facelets页面中直接引用Bean的属性。 5. **Converter**: 用于在JSF组件和模型之间进行数据转换,例如将字符串转换为日期。 6. **...

    一个简单的jsf例子------JSF2学习笔记1

    Expression Language (EL) 是JSF中的一个强大特性,用于在视图层和模型层之间传递数据。通过`#{}` 符号,我们可以引用bean属性,如`#{userBean.username}`。 5. **Facelets视图** JSF2默认使用Facelets作为视图...

    JSF程序设计

    JSF的主要目标是简化用户界面组件的构建和管理,提供MVC(Model-View-Controller)架构支持,以及提供一种与后端业务逻辑集成的标准化方式。在本教程中,我们将深入探讨JSF的核心概念、工作原理以及如何有效地利用它...

    Ajax4jsf 用户手册

    - **a4j:actionparam**:传递参数到Ajax请求。 - **a4j:status**:显示Ajax请求的状态。 - **a4j:loadBundle** 和 **a4j:mediaOutput**:分别处理资源加载和多媒体输出。 ### 4. **Ajax4jsf的换肤功能** Ajax4jsf...

    jsf2.1.9源码

    1. **FacesContext**: 这是JSF应用的核心上下文对象,它在请求处理期间提供关于当前请求和响应的信息,如用户的会话、应用程序范围的数据以及访问请求参数的方法。 2. **UIComponent**: 表示可渲染的用户界面组件。...

    jsf资料大全(主流的资料)

    - **功能**: 传递额外的参数到服务器端处理方法。 - **属性**: `name`、`value`等。 8. **a4j:status** - **功能**: 显示请求状态信息。 - **属性**: `id`、`style`等。 9. **a4j:loadBundle** - **功能**: ...

    JSF工程实例源代码

    3. **配置文件**:如web.xml,配置JSF的初始化参数和Servlet映射。 4. **数据库脚本**:创建用于存储文件元数据的表结构。 5. **DAO(Data Access Object)层**:封装与数据库的交互,可能包含处理文件记录的CRUD...

Global site tag (gtag.js) - Google Analytics