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(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建Web应用程序。它为开发人员提供了一种模型-视图-控制器(MVC)...通过理解和实践“jsf第一个例子”,开发者能够快速上手并掌握JSF的核心特性。
本文将详细讲解两种方法来获取JSF表单中的数据。 1. EL(Expression Language)表达式 EL是JSF的核心部分之一,它允许开发者在JSP页面中方便地访问JavaBean属性以及JSF上下文中的其他对象。获取表单数据最直接的...
- **Backing Bean**:在后台Bean(如`ABean`)中定义一个方法调用`downloadFile`,然后在JSF界面使用`<h:commandButton>`或`<h:commandLink>`组件触发该方法。例如,`<h:commandButton value="download" action="#{...
JSF(JavaServer Faces)是一种用于构建Web应用程序的Java技术,它提供了一种声明式的方式来创建用户界面,并处理用户交互。在这个"用jsf做的登录注册的组件"中,我们可能会涉及以下几个关键知识点: 1. **JSF架构*...
JavaScript Faces (JSF) 是Java平台上的一种用于构建用户界面的模型-视图-控制器(MVC)框架,主要用于Web应用程序开发。本指南将帮助初学者理解JSF的基本概念、架构和核心组件,以便快速入门。 一、JSF简介 JSF是...
在JavaServer Faces (JSF)框架中,分页是一种常用的技术,用于处理大量数据时提供更好的用户体验。当数据集过大,一次性加载所有记录到页面上会导致性能下降且用户界面响应变慢。通过分页,我们可以将数据分成多个...
JavaScript Faces (JSF) 是Java平台上的一种用于构建用户界面的模型-视图-控制器(MVC)框架,它简化了Web应用程序的开发。本资源包包含了JSF从入门到进阶的多个方面,包括基础教程、核心组件库(LIB)、Ajax4JSF的使用...
综上所述,JSF技术作为一种先进的Web用户界面开发方法,通过其独特的请求处理生命周期、组件模型和自定义标签库,有效解决了传统Java Web开发中的难题,极大地提高了开发效率。随着技术的不断进步和完善,JSF必将在...
总的来说,JSF为Java Web开发提供了一个强大的工具集,通过组件化和声明式编程,降低了开发复杂性,提升了开发效率。无论是初学者还是经验丰富的开发者,都可以通过深入学习JSF来提升其Web应用程序开发技能。
JavaScriptServerFaces(JSF)是JavaEE平台中的一个用于构建用户界面的组件框架,它提供了一种声明式的方式来创建Web应用程序。在这个实例中,我们关注的是用户登录和信息查询的功能,这两个是任何Web应用中最基本且...
JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架...
5. **调用应用程序(Invoke Application)**:在这个阶段,JSF会调用应用程序中的方法来处理事件。例如,如果用户点击了一个按钮,JSF会执行对应的动作方法,该方法通常在管理Bean中定义。 6. **呈现响应(Render ...
JavaScript Faces (JSF) 是Java平台上的一种用于构建用户界面的模型-视图-控制器(MVC)框架。这篇教程——"JSF第一步",显然旨在引导初学者进入JSF的世界,帮助他们理解并掌握这个强大的Web开发工具。下面将详细...
JSF组件通过`<h:xxx>`标签在页面上表示,如`<h:inputText>`代表一个文本输入框,`<h:commandButton>`则代表一个按钮。 ### JSF事件处理 在JSF中,用户操作如点击按钮会触发事件。这些事件可以由组件本身或者页面上...
JSF的核心思想是提供一种组件化的方式来进行Web开发,它将用户界面与业务逻辑分离,使得开发人员可以专注于界面设计,而无需关心底层实现细节。 在**JSF中文教程**中,通常会涵盖以下关键知识点: 1. **JSF架构**...
JSF,全称为JavaServer Faces,是Oracle公司开发的一种用于构建用户界面的Java EE标准组件模型框架。它为开发者提供了构建Web应用程序的简单、声明式的方法,特别适用于创建企业级的交互式用户界面。JSF的核心理念是...
《JSF第一步》是一本引导初学者入门JavaServer Faces(JSF)技术的书籍,源码包中的"ch1-12"包含了从第1章到第12章的示例代码,帮助读者通过实践来深入理解JSF的核心概念和应用。JSF是一种Java平台上的Web应用程序...
JavaScript Server Faces(JSF)是Java平台上的一种用于构建Web应用程序的MVC(Model-View-Controller)框架。作为Java EE的一部分,它为开发者提供了一种结构化、组件化的开发方式,简化了创建用户界面和处理服务器...
它提供了一种组件化的开发方式,使得开发者可以通过拖拽组件并配置属性来创建用户界面,极大地简化了开发过程。本教程旨在帮助初学者快速入门JSF,掌握其基本概念、架构和常用功能。 一、JSF概述 JSF是Java ...
**JSF(JavaServer Faces)** 是Java平台上的一种用于构建用户界面的Web应用程序框架,它简化了开发人员创建和管理动态Web用户界面的过程。JSF提供了组件库、事件处理机制和生命周期管理,允许开发者通过声明式的...