`
seven0_0
  • 浏览: 28007 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JSF里通过commandButton来传参的一种方法

    博客分类:
  • Jsf
阅读更多

JSF里通过commandButton来传参的一种方法(转)

假设我的JSF应用中有一个列表,列表的每一行有一个超链接用以处理该行的记录(比如删除该行),如图1所示

图1
上图倒数的第二第三列就是commandlink的实现

如果使用commandLink来传递参数给backingbean的话很方便(这种例子随处可见),就像代码1使用f:param 标签传递每一行的id号一样
代码1
<h:commandLink value="Done" action="#{taskejb.Done}">
    <f:param name="TasktodoParam" value="#{item.todoid}"/>
</h:commandLink>

然后backbean的Done方法可以用代码2取得参数

代码2
String id =
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(TasktodoParam);

新的需求是把commandLink 换成是commandButton ,就像图1最后的一列。

如果我们简单的把代码1的commandLink 替换成 commandButton,然后用代码2来取参数的话取到的值会是null,随后可能会抛出nullpointexception。

所以采用下面的办法,在commandButton上加一个actionListener,像代码3这样

代码3
<h:commandButton value="Done" action="#{taskejb.Done}"
actionListener="#{taskejb.testListener}">
   <f:attribute name="myAttribute" value="#{item.todoid}" />
</h:commandButton>

backbean的testListener方法用以下方法取得参数

代码4
    public void testListener(ActionEvent e) {
        if (e.getComponent().getAttributes().get("myAttribute") != null) {
            tempParam = e.getComponent().getAttributes().get("myAttribute").toString();
        }
    }

其中String型的全局变量tempParam用以接受传入的参数,实际执行时testListener方法会先于Done方法执行,所以在Done方法中可以使用传入的参数。

另一种方法仍然使用f:param传参,像代码5,6

代码5
<h:commandButton value="Hello" actionListener="#{myBean.myMethod}">
<f:param name="myParam" value="hello" />
</h:commandButton>

 代码6
public void myMethod( ActionEvent e ) {
String myParam = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get( "myParam" ).toString();
}

分享到:
评论

相关推荐

    jsf第一个例子 jsf架包 jsf实例

    **JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建Web应用程序。它为开发人员提供了一种模型-视图-控制器(MVC)...通过理解和实践“jsf第一个例子”,开发者能够快速上手并掌握JSF的核心特性。

    jsf获取表单的两种方法

    本文将详细讲解两种方法来获取JSF表单中的数据。 1. EL(Expression Language)表达式 EL是JSF的核心部分之一,它允许开发者在JSP页面中方便地访问JavaBean属性以及JSF上下文中的其他对象。获取表单数据最直接的...

    JSF文件下载实现

    - **Backing Bean**:在后台Bean(如`ABean`)中定义一个方法调用`downloadFile`,然后在JSF界面使用`&lt;h:commandButton&gt;`或`&lt;h:commandLink&gt;`组件触发该方法。例如,`&lt;h:commandButton value="download" action="#{...

    用jsf做的登录注册的组件

    JSF(JavaServer Faces)是一种用于构建Web应用程序的Java技术,它提供了一种声明式的方式来创建用户界面,并处理用户交互。在这个"用jsf做的登录注册的组件"中,我们可能会涉及以下几个关键知识点: 1. **JSF架构*...

    JSF入门

    JavaScript Faces (JSF) 是Java平台上的一种用于构建用户界面的模型-视图-控制器(MVC)框架,主要用于Web应用程序开发。本指南将帮助初学者理解JSF的基本概念、架构和核心组件,以便快速入门。 一、JSF简介 JSF是...

    jsf分页 jsf分页 jsf分页

    在JavaServer Faces (JSF)框架中,分页是一种常用的技术,用于处理大量数据时提供更好的用户体验。当数据集过大,一次性加载所有记录到页面上会导致性能下降且用户界面响应变慢。通过分页,我们可以将数据分成多个...

    JSF全套(JSF入门教+ LIB+ Ajax4JSF使用手册 )

    JavaScript Faces (JSF) 是Java平台上的一种用于构建用户界面的模型-视图-控制器(MVC)框架,它简化了Web应用程序的开发。本资源包包含了JSF从入门到进阶的多个方面,包括基础教程、核心组件库(LIB)、Ajax4JSF的使用...

    一种新的基于JSF技术的Web用户界面开发方法.pdf

    综上所述,JSF技术作为一种先进的Web用户界面开发方法,通过其独特的请求处理生命周期、组件模型和自定义标签库,有效解决了传统Java Web开发中的难题,极大地提高了开发效率。随着技术的不断进步和完善,JSF必将在...

    JSF 核心编程与入门

    总的来说,JSF为Java Web开发提供了一个强大的工具集,通过组件化和声明式编程,降低了开发复杂性,提升了开发效率。无论是初学者还是经验丰富的开发者,都可以通过深入学习JSF来提升其Web应用程序开发技能。

    JSF的一个实例

    JavaScriptServerFaces(JSF)是JavaEE平台中的一个用于构建用户界面的组件框架,它提供了一种声明式的方式来创建Web应用程序。在这个实例中,我们关注的是用户登录和信息查询的功能,这两个是任何Web应用中最基本且...

    JSF Java Server Faces (JSF)框架

    JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架...

    JSF的工作方式 JSF架构 JSF模型 JSF事件类型

    5. **调用应用程序(Invoke Application)**:在这个阶段,JSF会调用应用程序中的方法来处理事件。例如,如果用户点击了一个按钮,JSF会执行对应的动作方法,该方法通常在管理Bean中定义。 6. **呈现响应(Render ...

    JSF第一步

    JavaScript Faces (JSF) 是Java平台上的一种用于构建用户界面的模型-视图-控制器(MVC)框架。这篇教程——"JSF第一步",显然旨在引导初学者进入JSF的世界,帮助他们理解并掌握这个强大的Web开发工具。下面将详细...

    各种jsf标签Java语言

    JSF组件通过`&lt;h:xxx&gt;`标签在页面上表示,如`&lt;h:inputText&gt;`代表一个文本输入框,`&lt;h:commandButton&gt;`则代表一个按钮。 ### JSF事件处理 在JSF中,用户操作如点击按钮会触发事件。这些事件可以由组件本身或者页面上...

    JSF中文教程.zip

    JSF的核心思想是提供一种组件化的方式来进行Web开发,它将用户界面与业务逻辑分离,使得开发人员可以专注于界面设计,而无需关心底层实现细节。 在**JSF中文教程**中,通常会涵盖以下关键知识点: 1. **JSF架构**...

    jsf框架入门视频资料

    JSF,全称为JavaServer Faces,是Oracle公司开发的一种用于构建用户界面的Java EE标准组件模型框架。它为开发者提供了构建Web应用程序的简单、声明式的方法,特别适用于创建企业级的交互式用户界面。JSF的核心理念是...

    《jsf第一步》源码ch1-12

    《JSF第一步》是一本引导初学者入门JavaServer Faces(JSF)技术的书籍,源码包中的"ch1-12"包含了从第1章到第12章的示例代码,帮助读者通过实践来深入理解JSF的核心概念和应用。JSF是一种Java平台上的Web应用程序...

    jsf第一步

    JavaScript Server Faces(JSF)是Java平台上的一种用于构建Web应用程序的MVC(Model-View-Controller)框架。作为Java EE的一部分,它为开发者提供了一种结构化、组件化的开发方式,简化了创建用户界面和处理服务器...

    JSF入门级教程

    它提供了一种组件化的开发方式,使得开发者可以通过拖拽组件并配置属性来创建用户界面,极大地简化了开发过程。本教程旨在帮助初学者快速入门JSF,掌握其基本概念、架构和常用功能。 一、JSF概述 JSF是Java ...

    JSF与hibernate整合的登陆

    **JSF(JavaServer Faces)** 是Java平台上的一种用于构建用户界面的Web应用程序框架,它简化了开发人员创建和管理动态Web用户界面的过程。JSF提供了组件库、事件处理机制和生命周期管理,允许开发者通过声明式的...

Global site tag (gtag.js) - Google Analytics