- 浏览: 313212 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (243)
- Core Java (13)
- Java (12)
- Android (2)
- Lucene (3)
- J2EE (3)
- Hibernate (2)
- Jsp & Servlet (3)
- Struts2 (3)
- Spring (5)
- JSF (6)
- RichFaces (2)
- HTML & JS & DOM & CSS (87)
- browser (1)
- Ajax & A4J (2)
- Workflow (1)
- Maven (3)
- Linux (2)
- VM & VBOX (1)
- Tomcat (1)
- Cache (3)
- Others (36)
- design (1)
- PHP (1)
- Try.js (1)
- HTML5 && CSS3 && ECMAScript5 (26)
- 疯言疯语 (5)
- mongodb (2)
- Hardware Common Sence (1)
- RESTful (3)
- Nginx (2)
- web安全 (8)
- Page Design (1)
- web performance (1)
- nodejs (4)
- python (1)
最新评论
-
New_Mao_Er:
求最新的版本破解啊!!!
Omondo eclipseUML插件破解 -
konglx:
讲得仔细,谢了
全面分析 Spring 的编程式事务管理及声明式事务管理 -
cilendeng:
对所有post有效只能使用过滤器
说说Tomcat的Server.xml的URIEncoding=‘UTF-8’配置 -
jiulingchen:
mark了,灰常感谢!
JAVA中最方便的Unicode转换方法 -
anlaetion:
这算法可以有
js 字符串搜索算法
两种方案:
一、在entity bean中添加一个额外的字段,用于指示该实体bean是否被选中。
二、entity bean中的字段完全是和数据库中字段对应的,即没有额外的用于指示是否被选中的字段;是否被选中则在托管bean中用一个Map来反映。
具体实现看代码:(注:该文基于网络上的一些资料而完成)
/page/下的jsp:
<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <%-- The taglib directive below imports the JSTL library. If you uncomment it, you must also add the JSTL library to the project. The Add Library... action on Libraries node in Projects view can be used to add the JSTL 1.1 library. --%> <%-- <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> --%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Test Checkbox</title> <script language="javascript" type=""> function SetCheckedStatus() { var oTable=document.getElementById('myform:dt'); var oChkAll=document.getElementById('myform:dt:chkall'); if(oTable != null && oChkAll != null) { for(j=1;j<oTable.rows.length;j++) { oTable.rows[j].cells[0].childNodes[0].checked=oChkAll.checked; } } } </script> </head> <body> <f:view> <h:form id="myform"> <h:dataTable id="dt" value="#{testManageBean.users}" var="usr" width="100%" border="1" cellpadding="0" cellspacing="0"> <h:column> <f:facet name="header"> <h:selectBooleanCheckbox id="chkall" onclick="SetCheckedStatus();" value="#{testManageBean.chkall}"/> </f:facet> <h:selectBooleanCheckbox id="chkbox" value="#{usr.checked}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="headerText1" value="姓名"/> </f:facet> <h:outputText value="#{usr.name}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="headerText2" value="年龄"/> </f:facet> <h:outputText value="#{usr.age}"/> </h:column> </h:dataTable> <h:commandButton id="showCheckedButton" action="#{testManageBean.showCheckedbox}" value="show checked users"/> <h:dataTable id="dts" value="#{testManageBean.checkedUsers}" var="usr" width="100%" rendered="#{testManageBean.showCheckedUsers}" border="1" cellpadding="0" cellspacing="0"> <h:column> <f:facet name="header"> <h:outputText id="header1" value="姓名"/> </f:facet> <h:outputText value="#{usr.name}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="header2" value="年龄"/> </f:facet> <h:outputText value="#{usr.age}"/> </h:column> </h:dataTable> </h:form> </f:view> </body> </html>
<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <%-- The taglib directive below imports the JSTL library. If you uncomment it, you must also add the JSTL library to the project. The Add Library... action on Libraries node in Projects view can be used to add the JSTL 1.1 library. --%> <%-- <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> --%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Test Checkbox</title> <script language="javascript" type=""> function SetCheckedStatus() { var oTable=document.getElementById('myform:dt'); var oChkAll=document.getElementById('myform:dt:chkall'); if(oTable != null && oChkAll != null) { for(j=1;j<oTable.rows.length;j++) { oTable.rows[j].cells[0].childNodes[0].checked=oChkAll.checked; } } } </script> </head> <body> <f:view> <h:form id="myform"> <h:dataTable id="dt" value="#{testMapManageBean.users}" var="usr" width="100%" border="1" cellpadding="0" cellspacing="0"> <h:column> <f:facet name="header"> <h:selectBooleanCheckbox id="chkall" onclick="SetCheckedStatus();" value="#{testMapManageBean.chkall}"/> </f:facet> <h:selectBooleanCheckbox id="chkbox" value="#{testMapManageBean.checkedIds[usr.id]}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="headerText1" value="姓名"/> </f:facet> <h:outputText value="#{usr.name}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="headerText2" value="年龄"/> </f:facet> <h:outputText value="#{usr.age}"/> </h:column> </h:dataTable> <h:commandButton id="showCheckedButton" action="#{testMapManageBean.showCheckedbox}" value="show checked users"/> <h:dataTable id="dts" value="#{testMapManageBean.checkedUsers}" var="usr" width="100%" rendered="#{testMapManageBean.showCheckedUsers}" border="1" cellpadding="0" cellspacing="0"> <h:column> <f:facet name="header"> <h:outputText id="header1" value="姓名"/> </f:facet> <h:outputText value="#{usr.name}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="header2" value="年龄"/> </f:facet> <h:outputText value="#{usr.age}"/> </h:column> </h:dataTable> </h:form> </f:view> </body> </html>
package test.entitybean下的class:
package test.entitybean; /** * * @author SailingLee */ public class TestEntityBean { private String name; private int age; private boolean checked;//额外的字段,在数据库中没有与之对应的字段,只用于判断该实体bean是否被选中 /** Creates a new instance of TestEntityBean */ public TestEntityBean() { } public TestEntityBean(String name,int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public boolean isChecked() { return checked; } public void setChecked(boolean checked) { this.checked = checked; } }
/* * TestPureEntityBean.java * 此实体bean中没有额外的用于判断是否被选中的字段 */ package test.entitybean; /** * * @author SailingLee */ public class TestPureEntityBean { private Integer id; private String name; private int age; /** Creates a new instance of TestPureEntityBean */ public TestPureEntityBean() { } public TestPureEntityBean(int id,String name,int age) { this.id = new Integer(id); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } }
package test.managebean下的class:
package test.managebean; import java.util.List; import java.util.ArrayList; import test.entitybean.TestEntityBean; import test.phase.PostbackPhaseListener; /** * * @author SailingLee */ public class TestManageBean { private List users = null; private List checkedUsers = null; private boolean showCheckedUsers; private boolean chkall; /** Creates a new instance of TestManageBean */ public TestManageBean() { //if(!PostbackPhaseListener.isPostback()){ users = new ArrayList(5); TestEntityBean user = new TestEntityBean("sailinglee",25); users.add(user); user = new TestEntityBean("dyzhang",24); users.add(user); user = new TestEntityBean("elzhuang",25); users.add(user); user = new TestEntityBean("sdwang",26); users.add(user); user = new TestEntityBean("wfan",25); users.add(user); //} } public String showCheckedbox(){ checkedUsers = new ArrayList(5); for(int i=0;i<users.size();i++){ TestEntityBean user = (TestEntityBean)users.get(i); if(user.isChecked()) checkedUsers.add(user); } if(checkedUsers.size()>0) this.setShowCheckedUsers(true); else this.setChkall(false); return "ok"; } public List getUsers() { return users; } public void setUsers(List users) { this.users = users; } public List getCheckedUsers() { return checkedUsers; } public void setCheckedUsers(List checkedUsers) { this.checkedUsers = checkedUsers; } public boolean isShowCheckedUsers() { return showCheckedUsers; } public void setShowCheckedUsers(boolean showCheckedUsers) { this.showCheckedUsers = showCheckedUsers; } /** * @return the chkall */ public boolean isChkall() { return chkall; } /** * @param chkall the chkall to set */ public void setChkall(boolean chkall) { this.chkall = chkall; } }
/* * TestMapManageBean.java * */ package test.managebean; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.util.HashMap; import test.entitybean.TestPureEntityBean; import test.phase.PostbackPhaseListener; /** * * @author SailingLee */ public class TestMapManageBean { private List<TestPureEntityBean> users = null; private List<TestPureEntityBean> checkedUsers = null; private Map<Integer,Boolean> checkedIds = new HashMap<Integer,Boolean>(); private boolean showCheckedUsers; private boolean chkall; /** Creates a new instance of TestMapManageBean */ public TestMapManageBean() { //if(!PostbackPhaseListener.isPostback()){ users = new ArrayList<TestPureEntityBean>(5); TestPureEntityBean user = new TestPureEntityBean(1,"sailinglee",25); users.add(user); user = new TestPureEntityBean(2,"dyzhang",24); users.add(user); user = new TestPureEntityBean(3,"elzhuang",25); users.add(user); user = new TestPureEntityBean(4,"sdwang",26); users.add(user); user = new TestPureEntityBean(5,"wfan",25); users.add(user); //} } public String showCheckedbox(){ checkedUsers = new ArrayList<TestPureEntityBean>(5); for(TestPureEntityBean user : users){ if(this.checkedIds.get(user.getId()).booleanValue()){ checkedUsers.add(user); //this.checkedIds.remove(user.getId()); } } if(checkedUsers.size()>0) this.setShowCheckedUsers(true); else this.setChkall(false); return "ok"; } public List getUsers() { return users; } public void setUsers(List users) { this.users = users; } public List getCheckedUsers() { return checkedUsers; } public void setCheckedUsers(List checkedUsers) { this.checkedUsers = checkedUsers; } public boolean isShowCheckedUsers() { return showCheckedUsers; } public void setShowCheckedUsers(boolean showCheckedUsers) { this.showCheckedUsers = showCheckedUsers; } public Map<Integer, Boolean> getCheckedIds() { return checkedIds; } public void setCheckedIds(Map<Integer, Boolean> checkedIds) { this.checkedIds = checkedIds; } /** * @return the chkall */ public boolean isChkall() { return chkall; } /** * @param chkall the chkall to set */ public void setChkall(boolean chkall) { this.chkall = chkall; } }
/WEB-INF/下的faces-config.xml:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd"> <!-- =========== FULL CONFIGURATION FILE ================================== --> <faces-config> <managed-bean> <managed-bean-name>testManageBean</managed-bean-name> <managed-bean-class>test.managebean.TestManageBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>testMapManageBean</managed-bean-name> <managed-bean-class>test.managebean.TestMapManageBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> <lifecycle> <phase-listener>test.phase.PostbackPhaseListener</phase-listener> </lifecycle> </faces-config>
注:实现过程中PostbackPhaseListener没有用好,该例子只是说明JSF中全选的实现,关键在于那段jsp里js,那里的[]不可写为(),否则在firefox中可能有脚本错误,原因很简单,[]对应的是数组,而()对应的是函数。
- JSFCheckbox.rar (4.4 MB)
- 下载次数: 45
发表评论
-
JSF问题小结
2009-07-22 09:06 16871.如何结束session?你可以使用session的 inv ... -
JSF API 1.2
2009-07-19 09:19 1349传个jsf1.2的api,英文的。 -
JSF 整合AJAX 框架方案的设计研究
2009-07-18 08:43 880字数太多 下载附件看吧:) -
JSF1.2自定义验证器的实现
2009-07-15 23:54 1653这两天有个朋友在做jsf自定义验证器时遇到了一些问题,问了我。 ... -
开发 Visual Web JSF 应用程序
2009-07-07 21:13 1695在本教程中,您将使用 NetBeans IDE 和 JSF 1 ...
相关推荐
在这个"jsf实现登录功能"的例子中,我们将探讨如何利用JSF来构建一个基本的用户登录系统。 首先,登录功能通常包括两部分:前端页面和后端逻辑。在JSF中,前端页面通常由XHTML文件(.xhtml)组成,这些文件结合了...
5. **国际化支持**:JSF支持多语言,这在“JSF中文使用教程”中可能包含如何设置和使用中文资源的内容。 **学习JSF的关键概念**: 1. **Facelet**:Facelets是JSF的默认视图技术,用于创建和组织用户界面组件。 2. ...
总的来说,JSF与Hibernate结合使用可以方便地实现Web应用中的批量删除功能。开发者可以通过声明式编程方式构建用户界面,同时利用Hibernate的ORM能力处理数据库操作。在实际开发中,还需要注意错误处理、权限控制、...
3. 数据表格的实现:在JSF页面中,使用`t:dataTable`标签来展示数据表格,通过绑定JSF Bean的数据,实现数据的展示和操作。 4. 文件下载的实现:通过使用`HttpServletResponse`和`OutputStream`,实现文件的下载。...
在本文中,我们将深入探讨如何使用JSF来实现在Web应用程序中下载文件的功能。主要涉及的关键知识点包括: 1. **JSF上下文环境获取**: 在`downloadFile`方法中,首先通过`FacesContext.getCurrentInstance()`获取...
**事件处理** 在JSF中是通过事件监听器实现的。当用户与组件交互时,会触发特定的事件,相应的监听器方法会被调用,从而执行相应的处理逻辑。 **生命周期** 是JSF处理请求的关键过程,包括初始化、恢复视图、应用...
在实际开发中,开发者可以根据项目需求、团队熟悉度、性能要求以及对最新特性的需求来决定使用哪个JSF实现。例如,如果你的项目需要最新的JSF特性,那么官方实现可能是首选;如果重视开源社区的贡献和自定义组件,...
2. **JSF标签**:JSF的UI组件是以标签的形式在JSP页面中使用的,这些标签对应于服务器端的组件。学习JSF标签,你需要理解每个标签的用途,如`h:inputText`用于文本输入,`h:commandButton`用于触发动作,以及如何...
在本文中,我们将深入探讨如何使用JavaServer Faces (JSF) 框架与PrimeFaces库结合,构建一个基于HTML、CSS和JavaScript的网盘应用前端。PrimeFaces是一个流行的Java库,提供了丰富的UI组件,使得开发高质量的Web...
- **创建项目**:使用 IDE 如 Eclipse 或 NetBeans 创建新的 JSF 项目。 - **编写代码**:通常会从一个简单的“Hello World”示例开始,涉及 HTML 页面、JSF 标签以及 Managed Bean 的创建。 **1.3 简单的导航 ...
你可以在GlassFish的源码库中找到更多关于JSF的实现细节,这将有助于对比和理解Sun官方提供的JSF源码。 总之,JSF 1.2的源代码提供了一个学习和研究JSF内部机制的机会,通过深入研究,开发者可以提高对JSF的理解,...
这些组件可以直接在JSP或Facelets页面中使用,简化了前端开发。 3. **登录与注册**:登录注册功能通常包括用户名验证、密码比较、错误处理等。在JSF中,可以通过EL(Expression Language)来绑定组件值到后台Bean的...
接下来,我们在JSF页面(例如`index.xhtml`)中使用这些资源bundle中的文本。可以使用`<h:outputText>`组件来实现,通过`value`属性引用资源bundle中的键: ```xml ``` 在这里,`msg`是一个EL表达式,它引用了资源...
在本篇内容中,我们将深入探讨如何在JavaServer Faces (JSF) 2.0框架中实现换肤功能。JSF是一种用于构建Web应用程序的Java EE标准组件模型,而换肤功能则是提升用户体验的重要手段,它允许用户根据个人喜好选择不同...
在JavaServer Faces (JSF)框架中,自定义组件允许开发者根据项目需求创建具有特定功能的UI元素。本文将引导你逐步了解如何在JSF中实现一个自定义组件,从基础开始,一步步构建一个简单的组件,最后达到能够开发复杂...
**Ajax4JSF 使用中文...总的来说,"Ajax4JSF使用中文手册"是JSF开发者实现Ajax功能的宝贵资源。通过学习这份手册,开发者可以更好地理解Ajax4JSF的工作原理,并有效地将其应用于实际项目中,提升Web应用的用户体验。
总之,使用JSF和MyFaces实现文件上传虽然需要一些额外的配置和处理,但通过遵循上述步骤和最佳实践,可以有效地在JavaWeb应用程序中实现这一功能。这不仅提高了用户体验,也增强了应用程序的功能性和实用性。
开发者可以定义Bean的属性、方法,并通过EL在Facelets视图中使用。 6. **生命周期**:JSF有七个阶段,包括恢复视图、应用请求值、处理验证、更新模型值、调用应用、渲染响应和结束请求。每个阶段都有特定的任务,...
- Managed Beans是JSF中的核心概念,用于实现业务逻辑和表示层的分离。它们是Java对象,可以通过JSF配置文件定义和管理,使得依赖关系的管理更加灵活。 4. **转换器和验证器** - 转换器(Converter)负责在浏览器...