在.Net中,binding是个十分容易理解的东西

index.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsf/core" %>
<html>
<head>
<title>
Simple jsp page
</title>
</head>

<body>
<c:view>
<c:loadBundle basename="jsfResource" var="msg"></c:loadBundle>
<h:form>
<h:outputText value="#{msg.username}"></h:outputText> :
<h:inputText value="" binding="#{Backing.txtComponentInput}"></h:inputText>
<br>
<h:commandButton value="#{msg.btnSubmit}" actionListener="#{Backing.listen}"></h:commandButton>
</h:form>
</c:view>
</body>
</html>

index.jsp文件说明,16行就是binding绑定,18行是action事件。其实binding就是把控件的实例以属性的形式存储到bean里面,便于其他函数或方法操作这个控件。在.Net中,每个服务器控件就相当于一个类,服务器控件的属性就是类中的属性。程序编写人员对控件value,color等属性的操作其实就是对类中属性的操作(理解不正确之处,望给予斧正)。这里,JSF的思想和.Net是一致的。把控件的以实例的形式放到bean中,这样就可以用程序随意操作这个控件的各个属性了。

BackingBean.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 
24
25
26
27
28
29
30
31 
import javax.faces.component.UIInput;
import javax.faces.event.ActionEvent;
import javax.faces.context.FacesContext;

/**
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 2006-1-15
* Time: 10:02:59
* To change this template use File | Settings | File Templates.
*/
public class BackingBean {
UIInput txtComponentInput;

public UIInput getTxtComponentInput() {
return txtComponentInput;
}

public void setTxtComponentInput(UIInput txtComponentInput) {
this.txtComponentInput = txtComponentInput;
}

public void listen(ActionEvent e) {
FacesContext context = FacesContext.getCurrentInstance();
txtComponentInput.setValue("@@@@@@");
txtComponentInput.setRendered(true);
System.out.println(e.getComponent().getClientId(context));
}
}

BackingBean.java文件说明:主要是27,28行,其意思是当按钮的action事件触发后,就控件 txtComponentInput 进行操作,这里,我只是对Value和Rendered两个属性进行了操作,当然可以对其他属性进行随意操纵。这里的 txtComponentInput 其实就是<h:inputText value="" binding="#{Backing.txtComponentInput}"></h:inputText>,把此控件绑定到bean中,便于用程序对其进行动态控制。

faces-config.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, 
Inc.//DTD JavaServer Faces Config 1.0//EN" 
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
<navigation-rule>
<from-view-id>/index.jsp</from-view-id>
<navigation-case>
<from-outcome>login</from-outcome>
<to-view-id>/index.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>Backing</managed-bean-name>
<managed-bean-class>BackingBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>

faces-config.xml文件大家一看就是知道意思,就不多说了。

jsf中 binging的用法相关推荐

  1. mysql中change用法,mysql 中alter的用法以及一些步骤

    mysql 中alter的用法以及一些方法 在用到alter的时间,查到了这个文章,就copy下来了,详细进入下面链接: MySQL之alter语句用法总结 1:删除列 ALTER TABLE [表名 ...

  2. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

  3. 【C++】C/C++ 中 static 的用法全局变量与局部变量

    C/C++ 中 static 的用法全局变量与局部变量 目录 1. 什么是static? 1.1 static 的引入 1.2 静态数据的存储 2. 在 C/C++ 中static的作用 2.1 总的 ...

  4. php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?

    foreach的使用方法小编不是很明确,分享达人指教一下.foreach (array_expressforeach($array as $key) { if(xxxx) { break; //bre ...

  5. python中str的index什么意思_python中index的用法是什么

    index() 一般用处是在序列中检索参数并返回第一次出现的索引,没找到就会报错,比如:>>> t=tuple('Allen') >>> t ('A', 'l', ...

  6. php foreach是什么,php中foreach的用法是什么

    php中foreach的用法是:[foreach ($array as $value) {要执行代码;}],每进行一次循环,当前数组元素的值就会被赋值给$value变量,在进行下一次循环时,将得到数组 ...

  7. java中的基本用法

    java中的基本用法 关键字:专门用途的字符串 所有java关键字都是小写英文 标识符 java常量 java变量 ■ 作用域:起作用的区域■ 使用前必须先声明,在赋值.使用变量名访问这块区域 jav ...

  8. Java中getResourceAsStream的用法

    Java中getResourceAsStream的用法 首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String p ...

  9. javascript 中 console 的用法

    javascript 中 console 的用法 视频 https://www.bilibili.com/video/BV1g7411L751?from=search&seid=1567656 ...

最新文章

  1. 药企巨头辉瑞与家用机器人 Mabu 合作,利用 AI 评估患者行为
  2. 如何反转“轨道生成”?
  3. 合肥中学计算机老师招聘,2019年合肥北城中学教师招聘公告
  4. java field 获得值_反射通用获取字段值
  5. express中获取url参数
  6. watchOS更新后 Apple Watch 4心电图功能已开始支持欧洲用户
  7. 读书笔记 UltraGrid(2)
  8. 机器学习问题的十个实例
  9. 一文了解大厂的DDD领域驱动设计
  10. (一)事务与并发控制
  11. 好用的在线音乐网站,有这5个就够了(收藏备用)
  12. 鸿蒙窍做何解释,终朝睡在鸿蒙窍 一任时人牛马呼
  13. 无人机巡检,风力发电机组表面缺陷检测数据集(YOLO标签)
  14. win2003 x86 下载
  15. 小学写景作文无处下手?心田花开8大写作技巧
  16. 我是僵尸生存java_我的世界1.6.2我是僵尸整合包
  17. 筒式加热器行业调研报告 - 市场现状分析与发展前景预测
  18. Delphi使用迅雷的开放下载引擎下载
  19. 微软 MSE Build 1.0.1959.0 最新版发布
  20. iPad触屏笔哪个牌子好用?Apple Pencil的平替笔

热门文章

  1. Opencv实现击中击不中
  2. Mac相机不可用怎么办?教你恢复相机连接的方法
  3. 修改360浏览器主页
  4. js的json php无法json_decode,PHP中遇到BOM、 编码导致json_decode函数无法解析问题
  5. Python 列表的方法
  6. 程序员面试智力题(六)
  7. 酒店管理系统(C#和serverSql代码开发)
  8. VulnHub-XXE
  9. 笔记本的麦克风录不了音说不了话
  10. iphone应用隐私政策_如何在iPhone上“隐藏”联系人以获得更大的隐私