JSF中控件赋值方式

原创 2007年09月19日 11:22:00

JSF中对控件的赋值有以下几种方式。
1. 通过资源文件赋值。
2. 通过MBean属性赋值。
3. 通过隐含对象赋值。
4. 将控件绑定到MBean中的属性。

其中,赋值可以为一个公式。下面分别介绍:
1. 通过资源文件赋值:
需先定义资源文件Message.peoperties,代码如下:

LOGIN = Login
PASSWORD 
= Password:
USER_NAME 
= User Name:
JSF页面中引用资源文件:
<%...@ page contentType="text/html; charset=UTF-8"%>
<%...@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%...@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
<f:view locale="en">
    
<f:loadBundle var="msg" basename="Message"/>
    
<h:form>
        
<h:panelGrid border="1" columns="2">
            
<h:outputText value="#{msg.USER_NAME}"></h:outputText>
            
<h:inputText></h:inputText>
            
<h:outputText value="#{msg.PASSWORD}"></h:outputText>
            
<h:inputText></h:inputText>
        
</h:panelGrid>
    
</h:form>
</f:view>
</body>
</html>

代码中JSF文件通过<f:loadBundle>标签引入资源文件,然后用#{msg.USER_NAME}来引用Resource文件中USER_NAME的值。在JSF1.2中,也可以通过在faces-config中配置resource-bundle来引入资源文件。

2. 通过MBean属性赋值:

MBean代码如下:

package net.moon.beans;

public class UserInfo ...{
    
private String userName;
    
private String password;
    
    
public String getUserName()...{
        
return userName;
    }

    
    
public String getPassword()...{
        
return password;
    }

    
    
public void setUserName(String userName)...{
        
this.userName = userName;
    }

    
    
public void setPassword(String password)...{
        
this.password = password;
    }

}

在faces-config文件中配置MBean:
    <managed-bean>
        
<managed-bean-name>
        userInfo
</managed-bean-name>
        
<managed-bean-class>
        net.moon.model.UserInfo
</managed-bean-class>
        
<managed-bean-scope>
        session
</managed-bean-scope>
    
</managed-bean>
在JSF页面中引用MBean的属性:
<%...@ page contentType="text/html; charset=UTF-8"%>
<%...@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%...@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
<f:view locale="en">
    
<f:loadBundle var="msg" basename="Message"/>
    
<h:form>
        
<h:panelGrid border="1" columns="2">
            
<h:outputText value="#{msg.USER_NAME}"></h:outputText>
            
<h:inputText value="#{userInfo.username}"></h:inputText>
            
<h:outputText value="#{msg.PASSWORD}"></h:outputText>
            
<h:inputText value="#{userInfo.password}"></h:inputText>
        
</h:panelGrid>
    
</h:form>
</f:view>
</body>
</html>

用这种方式可以将控件的Value与MBean中的某一属性双向绑定,从而可以在其中之一被修改时自动修改另外一个的值,这种用法较多。

3. 用隐含对象赋值:
JSF中的隐含对象包含:

隐含对象  描述
applicationScope 整个应用域,相当于JSP中的application
cookie Cookie中资料,相当于JSP中的cookie
facesContext JSF中的FacesContext对象,可以通过它来访问其它对象
header 当前Request的Http header的Map
headerValues 当前Request中所有的Http header的Map
initParam 当前应用的初始化参数的Map
param 请求参数的Map
paramValues 当前参数的Map
requestScope 当前请求,相当于JSP中的request
sessionScope Session的Map,相当于JSP中的session
view 当前view
JSF代码中的引用方法如下:
<h:outputText value="#{sessionScope.userInfo.userName}"></h:outputText>
4. 将控件绑定到MBean中的某一属性,然后可以在MBean中修改控件数据:
基本方法是在MBean中建立类型为javax.faces.component包中的某一控件的属性,然后在JSF代码中用控件的binding属性来将整个控件与MBean中的属性绑定,这样就可以在MBean中修改JSF控件的各种属性,这里不做详细介绍。
版权声明:本文为博主原创文章,未经博主允许不得转载。

JSF2.0的三种赋值标签

viewParamf:param  以get方式赋值url上========================================actionListenerf:attribute ...
  • suncaishen
  • suncaishen
  • 2011年05月04日 09:58
  • 1407

JSF中UI控件binding属性的用法

以下内容为我在CSDN上转载的,版权归属原作者!    在.Net中,binding是个十分容易理解的东西,但最近学习JSF,总理解不了binding属性的用法,查了一些资料,都是简单的说明,对...
  • nash603
  • nash603
  • 2014年11月05日 15:08
  • 1154

JSF 初始化 页面数据的方法

应用场景:打开一个页面之后,数据就已经查询出来并且显示在dataTable里面,即初始化页面数据 由于JSF生命周期的问题,构造函数以及get方法里面绝对不要写调用和数据库交互的servic...
  • woshichunchun
  • woshichunchun
  • 2012年11月18日 20:59
  • 3280

jsf组件 -1

表4-1  JSF包括多个标准UI组件以构建HTML视图。具有相似功能的相关组件被组织成组件族(family) 组件族1组    件可能的IDE显示名称说    明 ColumnU...
  • Vanessa219
  • Vanessa219
  • 2009年03月09日 11:41
  • 1962

js获取jsf输入输出控件的值

一, jsf中使用js获得输入项值的注意事项: 如果你在jsf的form标签 中,使用了普通的输入框,那么你在js里面获得输入框的值的时候应该写 document.getElement...
  • liang0000zai
  • liang0000zai
  • 2014年11月04日 18:11
  • 2074

JSF2.0实战 - 4、自定义组件

项目环境: 1、JSF2.1+ 2、JDK1.6+ 3、Tomcat6.0+ 4、Eclipse3.6+ 我用的Indigo
  • xixixi9988
  • xixixi9988
  • 2014年05月01日 20:49
  • 2764

JSF入门、简单示例

转载自:http://hi.baidu.com/pprlbwanpydhuze/item/723775d23ab6254dfa576823 JSF入门  1. 什么是 Java Server Fac...
  • xu252659774
  • xu252659774
  • 2013年10月15日 20:04
  • 2154

JSF自定义组件之五 JSF实现-Renderer

           上篇已介绍了JSF Tag类的开发,本篇将继续介绍JSF Renderer的开发。           Renderer类是JSF组件开发中一个较重要的类,该类主要功能是在Jav...
  • sunshinestation
  • sunshinestation
  • 2008年09月01日 11:46
  • 27709

Spring与JSF2的整合配置的整理

目的:在JSF2中可以使用Spring中的Bean,可以通过注解方式配置使用。环境:在JSF2.2,Spring3.2.7版本测试通过。配置过程概述: 整合过程主要包括一下三个方面的配置:web.xm...
  • haveaway
  • haveaway
  • 2015年01月12日 09:28
  • 1444

JSF html标签

 JSF html标签Jsf提供了一套标准的html标签。可以让您搭配JSF组件输出HTML文件,标准的HTML Renderer Kit主要包括了几个类别: 输出(Outputs) 其名称以o...
  • GOALSTAR
  • GOALSTAR
  • 2007年07月13日 11:24
  • 2162
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSF中控件赋值方式
举报原因:
原因补充:

(最多只允许输入30个字)