前几天遇到了一个需求-----将一页面中的值传到该页面的标签页中(自定义的)并绑到该标签页后台Bean中经行处理(主页与标签页分别为不同的bean),一般的传值我倒是有很多方法去实现,但都是必须要有事件来支持(如<a4j:actionparam assignTo="#{}">就必须在<a4j:a4j:commandLink>中),而我的需求是不允许存在事件的。我最后的解决办法是:
主页:<custombiz:businessSelectExtend workID="WP34" bizRender="bizInfoView,comButton"/>
标签页: <h:inputHidden value="#{workID}" binding="#{businessSelect.workID}"/>
说明:这里的custombiz:businessSelectExtend 是自定义标签,代表整个标签页。workID是要传的值,businessSelect.workID是标签页后台Bean的接受属性。在进入主页时后台可通过getWorkID()来获得值“WP34”,如果主页的workID也可以写EL表达式,这将使得标签页获得是动态的值。
感受:只要一进入该页面,Jsf就会自动调用setWorkID()方法将页面的"value"的内容(即主页workID的值)传给后台bean的workID属性.这就表明binding与value绑定的差别,value绑定在初始化时是依赖于后台bean的,也因此jsf的request范围的bean一刷新,value绑定的值就会为null.而binding在初始化是依赖的页面,在初始化时它会将页面的值将set进入后台bean.
个人觉得binding的有两个优点:
1)不与value绑定冲突! 使得一个标签可以传值的功能,再加上Jsf的标签可以绑定的任意你想绑定的类的属性(听说struts只能帮定到页面特定的FormBean,灵活性较差).因而Jsf还是很强大的(可惜这是有代价的!!).
2)由于binding到后台的是均是对象(UI**),Jsf对其进行了大量的封装使得后台对前台的控制力更加的强劲!!!
3)value与binding的绑定最大区别个人认为是在初始化时,Jsf出发点的不同.value绑定的出发点是bean,因而在Jsf初始化时会将后台bean的值付到页面(由于bean的初始化,而jsf的声明周期说明bean在request范围时是重新构建的,因而bean初始化后值均为null或0).而binding正好相反,它的出发点是页面,当初始化时会在bean重新构建之后将上次页面的值付给后台bean.
分享到:
相关推荐
EL用于从后台Bean获取或设置属性值,而动作事件则用于触发后台方法。 - **EL**:例如,`#{bean.property}`这种表达式可以读取或修改后台Bean的`property`属性。在JSF标签中,我们可以直接将EL用作属性值,如`value=...
5. **调用应用程序(Invoke Application)**:在这个阶段,JSF会调用应用程序中的方法来处理事件。例如,如果用户点击了一个按钮,JSF会执行对应的动作方法,该方法通常在管理Bean中定义。 6. **呈现响应(Render ...
在《jsf标签》简体中文版中,读者可以期待对这些概念的详细解释,包括每个标签的具体用法、属性的解析、以及如何结合后台Bean来实现复杂的业务逻辑。这本书还将涵盖JSF标签的最佳实践,帮助开发者写出更加高效、易于...
2. **事件驱动**:用户在界面上的操作会触发后台的事件,JSF通过事件监听器处理这些事件,实现前后端的数据交互。 3. **生命周期管理**:JSF有明确的组件生命周期,包括初始化、应用请求值、处理验证、更新模型值、...
例如,`#{bean.property}`可以用来获取或设置后台Bean中的属性值。EL还支持运算符、方法调用和集合操作。 ### Managed Beans Managed Beans是JSF中的核心业务对象,它们负责存储和处理应用程序的数据。通过在配置...
- **输出Bean属性**:展示Bean中的数据到前端。 #### 三、Bean的定义及规范 - **背景介绍**:Bean是遵循一定约定的Java类,通常用于表示数据模型或控制逻辑。 - **Bean的定义**: - **零参构造函数**:Bean必须有...
9. 标签用于创建链接,它可以绑定到后台bean的方法,类似于,但不会触发请求处理,只是简单地导航到指定的URL。 10. JSF的表单处理通常由标签包裹,例如:<h:form><h:commandButton value="提交" action="#{...
- 这些标签通常会绑定到后台bean中的属性,以实现数据双向绑定。 #### 六、命令类标签详解 - 命令类标签主要用于处理用户的操作请求,如按钮、链接等。 - 示例:`<h:commandButton action="#{bean.method}" value...
### JSF生命周期的事件处理 JavaServer Faces(简称JSF)是Java平台提供的一种用于构建企业级Web应用程序的标准框架。JSF通过定义一套简洁而强大的API来帮助开发者更轻松地开发用户界面。其中,JSF的生命周期管理...
这些标签在JSF视图层(通常是JSP或Facelets页面)中使用,与后台的JavaBeans(Managed Beans)进行交互。标签可以有属性,这些属性可以绑定到Managed Bean的属性,实现数据的双向绑定。此外,还可以通过自定义标签...
这类似于HTML的`<span>`或`<p>`标签,但JSF标签能直接绑定到后台bean的属性。 4. `h:outputFormat`允许格式化输出,它使用`f:param`子标签传递参数。如示例所示,`”{0} is {1} years old!” >...</h:outputFormat>...
JSF的学习入门知识教程,里面有例子还有各个标签的使用及属性介绍
POI读取并导出Excel(JSF Bean 页面的实现) 概述 本文将介绍如何使用POI库在JSF Bean页面中读取和导出Excel文件。通过该实现,可以实现下载地址的可选性,而不是写死的固定地址。 相关知识点 1. POI库的使用:...
常用的 JSF标签库 常用的 JSF标签库
2. 更新模型:如果验证通过,将表单数据绑定到后台bean的属性。 3. 执行动作:调用bean的方法,执行业务逻辑。 4. 渲染响应:根据处理结果更新页面。 在"JsfInAction"这个文档中,你将找到有关如何使用JSF标签和...
它们可以通过属性和事件绑定到后台Bean,实现数据的双向绑定。 **4. Managed Beans**:Managed Beans是JSF中的业务逻辑组件,它们负责处理用户的请求和数据。通过注解如`@ManagedBean`和`@SessionScoped`,可以定义...
JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架一样,JSF定义了一套JSF标签 JSF的全称 1、Joint Strike Fighter (JSF) 2、Java Server ...
这个压缩包文件"myfaces-example-simple-1.1.7-SNAPSHOT"包含了一个JSF的实际应用示例,适合初学者和开发者了解JSF标签的使用方法和JSF应用的部署流程。 首先,我们要理解JSF的核心概念:组件、事件和渲染。JSF中的...
### 学习技术 JSF必备 —— JSF标签详解 #### 1. JSF标签概述 JavaServer Faces (JSF) 是一种用于构建基于组件的用户界面的Java Web框架。它提供了一组丰富的标签库,使得开发人员能够更加高效地创建动态网页应用...
1. **创建**:用户通过表单提交新数据,JSF的`<h:inputText>`等组件收集输入,然后通过动作事件(如`<h:commandButton>`)触发后台bean的方法来保存数据。 2. **读取**:JSF使用EL(Expression Language)从后台...