JSF 中组件的 binding 是指 这个 HTML 组件要 绑定到那个 Bean 上,这个 Bean 本身跟 这个 HTML 组件是 一个类型的, 这样才能 get / set ,
上面你的代码中
<h:inputText id="firstname" binding="#{name.firstname}"/>
这里 name.firstname 应该是个 HtmlInputText 类的实例, 而你说它是个 Name 类型,所以类型不对,如果你只是 让他执行 name.setFirstname(); 来填充值(像 Struts 那样),那么你就应该用 <h:inputText id="firstname" value="#{name.firstname}"/& gt;
如果要用 binding 属性就这样
<h:outputText id="myOutputText" binding="#{myBean.myOutputText}"/>
用到 binding 还有一个地方很实用:
在一个 dataTable 中要得到当前行号,比如:
我这里 myBean.myTable 是个 DataTable 类型, 这样迭代总显示当前的行号,当你使用了分页时也能看到正确的行号,比如 第一页 10-20 , 第二页他就是 21-30 。
<h:dataTable id="mytable" binding="#{myBean.myTable}" var ="myList">
<h:outputText value="#{myTable.rowIndex}" />
</h:dataTable>
public class MyPageCode {
private HtmlOutputText myOutputText;
public HtmlOutputText getMyOutputText(){
if(myInputText == null){
// 从 ViewRoot 开始搜索 ID 为 myInputText 组件并赋值。
UIComponent root = FacesContext.getCurrentInstance().getViewRoot();
myOutputText= (HtmlInputText) findInDeep(root,"myOutputText");
}
return myOutputText;
}
public void setMyInputText(HtmlInputText input){
this.myInputText = input;
}
}
private UIComponent findInDeep(UIComponent root, String id ){
Iterator kids = root.getChildrenAndFacets();
while( kids.hasNext()){
UIComponent current = (UIComponent) kids.next();
if( id.equals(current.getId())
return current;
current = findInDeep(current,id);
if(current !=null)
return current;
}
return null;
}
JSF_datatable
<h:dataTable id="tableRows" rowClasses = "row1,row2,row3,row4,row5,row6,..." />
你可以这样 添加 rowClasses 属性,它会为每一行轮流选择一个 rowXX,也就是 第一行 class=用 row1, 第‘二行 class=用 row2 ,row6 用完了之后重新从 row1 开始。
列的 columnClasses 也是一样的。
也就是你可以这样:
<h:dataTable id="tableRows" columnClasses= "w1,w1,w1,w1,w1,w1,w1,w1,w1,W2,w1,w1,w1" />
因为你已经知道了 第十列, 或者你不知道是第十列那就用 表达式,让这个表达式计算后返回的字符串 就像 "w1,w1,w1,w1,w1,w1,w1,w1,w1,W2,w1,w1,w1" 一样就行了.
managed-bean之间如何传递参数
在faces-config.xml中,如下两个bean,LoginBean为验证用户登陆,BlogAddBean为添加文章,现在想把用户登录时的id传递给blog.BlogAddBean
<managed-bean>
<managed-bean-name>login</managed-bean-name>
<managed-bean-class>net.fanq.user.LoginBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>blogadd</managed-bean-name>
<managed-bean-class>net.fanq.user.BlogAddBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
//两种解决方法:
//1.Value Binding
//2.Variable Resolver
在BlogAddBean.java文件中
FacesContext fc = FacesContext.getCurrentInstance();
LoginBean loginBean = (LoginBean)fc.getApplication().createValueBinding("#{login}").getValue(fc);
//注释掉的为第二种方法
//LoginBean loginBean = (LoginBean)fc.getApplication().getVariableResolver().resolveVariable(fc,"login");
private int userid = loginBean.getUserid();
分享到:
相关推荐
在JSF(JavaServer Faces)2.0中,`dataTable`是一个非常重要的组件,用于展示动态数据表。这个例子展示了如何实现一个具有单行编辑功能的`dataTable`,让用户能够直接在表格中编辑数据并保存更改。下面我们将深入...
**JSF 2.0 DataTable 全面解析** JavaServer Faces (JSF) 是一个用于构建用户界面的Java EE框架,特别适用于开发Web应用程序。在JSF 2.0版本中,DataTable组件是一个核心功能,它允许开发者以表格形式展示数据,...
在这个“ajax4jsf 刷新datatable 例子”中,我们将探讨如何利用Ajax4jsf实现数据表格(datatable)的局部刷新功能,从而提高用户体验。 首先,让我们了解什么是Datatable。在JSF中,`<h:dataTable>` 是一个组件,...
**JSF PrimeFaces DataTable 深入解析** PrimeFaces 是一个流行且功能丰富的JavaServer Faces (JSF)组件库,提供了许多用户界面组件,其中包括`DataTable`。在JSF应用中,`DataTable`是一个非常重要的组件,用于...
对DataTable进行分页,对DataTable进行分页
1. **DataTable行样式**:在JSF中,`<h:datatable>`组件用于展示数据表格。我们可以自定义行样式来增强用户体验。通过使用CSS类或者使用`rowStyleClass`属性,我们可以根据特定条件为表格的每一行设置不同的样式。...
**JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,专为构建Web应用程序而设计。它简化了创建动态、数据驱动的Web界面的过程,通过组件化和事件驱动模型来实现。JSF DEMO通常包含了一系列示例,帮助初学...
JSF2.xdatatable分页控件与左侧菜单最简单应用 JSF2.x,功能强大,使用方便。全世界使用JSF的人越来越多。而且也有很多很好的控件给发出来了,如:richfaces、primefaces、myfaces等,就日前来讲primefaces功能...
Beginning JSP,JSF and Tomcat 书中源码 Beginning JSP,JSF and Tomcat 书中源码
Beginning JSF 2 APIs and JBoss? Seam You’ll learn to create and enhance an eShop using practical methods, and can repurpose the template for your own personal and professional projects. What you’...
《Apress.Pro.JSF.and.Ajax》这本书是关于JavaServer Faces (JSF) 和 Ajax 技术的专业指南。JSF 是一个用于构建Web应用程序的Java框架,它简化了UI组件的开发和管理,而Ajax(Asynchronous JavaScript and XML)则是...
### 关于《Beginning JSF2 APIs and JBoss Seam》的知识点总结 #### 一、书籍简介与背景 《Beginning JSF2 APIs and JBoss Seam》是一本深入介绍JavaServer Faces 2(简称JSF2)及其相关API以及JBoss Seam框架的...
《Apress.Pro.JSF.and.Ajax.pdf》这本书深入探讨了JavaServer Faces (JSF) 和Ajax在Web开发中的应用,提供了丰富的实践经验和专业见解。JSF是Java平台上的一个组件化用户界面框架,用于构建企业级的Web应用程序,而...
《jsp,jsF.and tomcat 书籍》是针对Java Web开发的一本综合指南,主要涵盖了JSP(JavaServer Pages)、JSF(JavaServer Faces)和Tomcat三个关键领域。这本书籍详细介绍了如何利用这些技术来构建高效、动态的Web应用...
Pro JSF and HTML5 shows you how to leverage the full potential of JavaServer Faces (JSF) and HTML5. This book is for Java developers who aspire to build sophisticated, enterprise-grade web experiences...
这篇"jee6 学习笔记 5 - Struggling with JSF2 binding GET params"主要探讨了开发者在使用JSF2绑定GET参数时可能遇到的挑战和解决方案。 JSF2是一个基于MVC(模型-视图-控制器)设计模式的Java框架,用于创建交互...
Comprehensive and example–driven, Beginning JSP, JSF, and Tomcat: Java Web Development, Second Edition is all you need to develop dynamic Java-based web applications using JSP, connect to databases ...
JavaScript Server Faces(JSF)是Java平台上的一种用于构建用户界面的服务器端框架,它遵循Model-View-Controller(MVC)设计模式。JSF提供了一种声明式的方式来进行UI组件的创建和绑定,使得开发者可以专注于业务...