`
木易有峰
  • 浏览: 51043 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

JSF下拉框

阅读更多
    前段时间刚换公司,进入公司正好碰到一个项目在使用JSF框架,当时项目经理就让我做下基本的一些信息处理,也就是增删改查(刚去公司,加上能力又不照,只好从基本做起,呵呵)
    但是在做的过程中,因为用户表与角色表是想关联的,而在显示所有用户的时候,需要将想对应的关联角色显示出来,而数据库中只是主键关联,并非名称关联。原本以为只需要在JSF页面上这样就可以了
<h:column>
<h:dataTable border="1" id = "users" value="#{UserBean.list}" var="u" styleClass="orders" headerClass="ordersHeader" rowClasses="evenColumn,oddColumn"> 
                        <f:facet name="header">
                            <f:verbatim escape="true">角色</f:verbatim>
                        </f:facet>
                        <h:selectOneMenu value="#{u[1]}">
                            <f:selectItems value="#{u[1]}"/>
                        </h:selectOneMenu>
                    </h:column>
</h:dataTable> 

可是运行后,发现根本不可以显示角色。在网上找了下,终于找到解决办法了。
JSF页面
<h:column>
<h:dataTable border="1" id = "users" value="#{UserBean.list}" var="u" styleClass="orders" headerClass="ordersHeader" rowClasses="evenColumn,oddColumn"> 
                        <f:facet name="header">
                            <f:verbatim escape="true">角色</f:verbatim>
                        </f:facet>
                        <h:selectOneMenu value="#{u[1]}">
                            <f:selectItems value="#{#{RoleBean.roleList}}"/>
                        </h:selectOneMenu>
                    </h:column>
</h:dataTable> 

后台Bean
public class RoleBean {

    public int roleId;
    public String roleName;
    public String roleRemark;
    public String msg;
    public List<SelectItem> roleList = new LinkedList<SelectItem>();
    public Vector list;

    public RoleBean() throws Exception {
        if (roleList == null) {
            roleList = new LinkedList<SelectItem>();
        }
        RoleBR rbr = new RoleBR();
        Vector v = new Vector();
        String id = null;
        String name = null;
        v = rbr.getAllRoleName();
        list = rbr.getAllList();
        Iterator it = v.iterator();
        while (it.hasNext()) {
            String[] row = (String[]) it.next();
            for (int i = 0; i < row.length; i++) {
                if (i == (i / 2)) {
                    id = row[i].trim();
                    name = row[i + 1].trim();
                } else {
                    continue;
                }
                roleList.add(new SelectItem(id, name));
            }
        }
    }

    public int getRoleId() {
        return roleId;
    }

    public void setRoleId(int roleId) {
        this.roleId = roleId;
    }

    public String getRoleName() {
        return roleName;
    }

    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }

    public String getRoleRemark() {
        return roleRemark;
    }

    public void setRoleRemark(String roleRemark) {
        this.roleRemark = roleRemark;
    }

    /**
     * create the selectOneMenu for user regrest.jsp
     * @return
     */
    public List<SelectItem> getRoleList() {
        return roleList;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

数据库层DAO
public class RoleDA {
private DBBase theDB = new DBBase();//数据库连接
private String str_sql = null;
/**
     * 取得所有的角色
     * @return
     */
    public Vector getAllList() {
        Vector result = new Vector();
        str_sql = "select t.roleid,t.rolename,t.remark from s_role t";
        result = theDB.selectAll(str_sql);
        return result;
    }
}

JSF配置文件
<?xml version="1.0" encoding="UTF-8"?>

<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
              version="1.2">
<managed-bean>
        <managed-bean-name>RoleBean</managed-bean-name>
        <managed-bean-class>ahbagz.bean.RoleBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
</faces-config>
分享到:
评论
2 楼 witingbar 2008-08-12  
这是什么时候的项目?
1 楼 lysmart_8 2008-05-11  
这个应该比较简单

相关推荐

    JSF加入Ajax功能的下拉框自定义组件(含源代码)

    JSF加入Ajax功能的下拉框自定义组件,含源代码。

    JSF 动态 数据的三级级联示例操作

    本文将详细讲解如何通过JSF来实现一个动态的三级级联下拉框,这在多层级关联的数据展示中非常有用,比如地区、城市、街道的选择。我们将使用Java后端和数据库来获取并传递这些数据。 首先,我们需要了解JSF的基本...

    jsf的初步使用(包括jsf框架的引入、用户登录、自定义表单验证、valueChangeEvent值变更事件处理做的级联下拉框,内有jsf的jar包)

    本教程将带你深入了解JSF的基础使用,包括框架的引入、用户登录实现、自定义表单验证以及通过`valueChangeEvent`处理级联下拉框。 **一、JSF框架的引入** 在Java EE项目中引入JSF框架,首先需要在`pom.xml`或`build...

    JSF的工作方式 JSF架构 JSF模型 JSF事件类型

    JavaServer Faces (JSF) 是一个用于构建用户界面的Java Web框架,它简化了创建和维护Web应用程序的复杂性。JSF的核心理念是提供一种组件化的编程模型,将UI元素与业务逻辑分离,使得开发者可以专注于应用的逻辑部分...

    jsf分页 jsf分页 jsf分页

    用户可能希望调整每页显示的记录数,为此,可以在界面提供一个下拉框让用户选择。后端需要相应地更新每页记录数,并重新计算和加载数据。 7. **状态管理**: 考虑到JSF的请求范围,确保分页状态(当前页、每页...

    jsf【静态】页面的三级级联示例

    在JSF(JavaServer Faces)框架中,创建静态页面的三级级联下拉框是一种常见的需求,这通常用于实现用户界面中的数据筛选功能。在这个示例中,我们看到的是一个利用JSF、Java和MyFaces库构建的三级联动下拉菜单。这...

    JSF第一个应用

    JSF提供了丰富的UI组件,如表格、下拉框、按钮等,它们可以通过事件处理进行交互。`&lt;f:event&gt;`和`&lt;f:ajax&gt;`标签可以用来注册监听器或实现异步更新。 ### 六、JSF与Java EE集成 JSF可以很好地与其他Java EE技术,如...

    下拉框自定义标签

    在实际项目中,除了Struts2,还有其他框架如Spring MVC、JSF等也支持自定义标签。总的来说,理解和掌握自定义标签的创建和使用是提高开发效率、提升代码质量的重要手段,对于提升IT专业技能有着积极的作用。

    jsf2.0新特性及richface优化总结

    - 对于下拉框、多选框等控件,推荐使用`List&lt;SelectItem&gt;`而非`SelectItem[]`。这允许在初始化时省略指定长度,并且在添加或删除元素时操作更简洁,特别是处理权限分配等动态变更场景,无需重新构建整个对象。 2. ...

    设置jsf的选择框h:selectOneMenu为不可编辑状态的方法

    1、js代码: 代码如下: function init() { ... } 2、h:selectOneMenu下拉框 代码如下: ”studyPhase” value=”#{schoolfellowInfoEdit.studyPhase}”&gt; ”#{schoolfellowInfoEdit.studyPhaseNamesItems}”/&gt; &lt;/h&gt;

    JSF中文版教程(chm格式)

    JSF组件库还包括许多其他类型的组件,如表格、下拉框、日期选择器等。 **二、JSF生命周期** JSF应用有四个主要阶段:恢复视图、应用请求值、处理验证和更新模型值、调用应用。在每个阶段,JSF会执行特定的任务,...

    如何使用JSF和Ajax制作强大的网络组件.rar

    - **下拉联动**:在一个下拉框选择后,通过Ajax动态填充另一个下拉框的选项。 学习如何使用JSF和Ajax制作强大的网络组件,不仅可以提升Web应用程序的交互性,还能为用户提供更流畅的体验。理解这些技术并熟练运用...

    ajax jsf 实例

    这些库提供了多种Ajax启用的组件,如按钮、输入字段、下拉框等,只需简单配置就能实现Ajax功能。 2. **JSF的Ajax事件和行为**:JSF提供了一种称为AJAX事件的机制,允许开发者定义在特定用户交互时触发的Ajax调用。...

    在线就业管理系统(JSF+Hibernate)

    在线就业管理系统是一款基于Java技术栈开发的Web应用,主要利用了JSF(JavaServer Faces)作为前端展示框架,Hibernate作为持久层 ORM(Object-Relational Mapping)工具,以及EasyUI作为用户界面组件库。...

    基于Seam框架实现省、市、区县的联动选择

    使用Seam和JSF,可以创建一个`&lt;h:selectOneMenu&gt;`组件来展示下拉框,并使用`f:ajax`标签来实现异步更新。例如,当省选择改变时,触发AJAX请求,`LocationService`返回对应的城市列表,更新城市下拉框。同样,城市...

    AppComponentesJSF2:JSF 2大部分视觉组件的简单示例

    在JSF应用中,`HashSet`可以用于构建唯一数据集,例如作为下拉框选择项的来源。 ### 4. LinkedHashMap `LinkedHashMap`是`HashMap`的一个子类,它保留了插入元素的顺序,即迭代器遍历元素时会按照插入顺序返回。在...

    jre-6( jre-6u37.rar )

    MyFaces提供了丰富的UI组件,例如表格、图表、下拉框等,这些组件可以方便地通过XML或Java代码进行声明和操作。 在实际开发中,开发者需要熟练掌握JSF的生命周期,理解何时创建和销毁组件,如何处理用户输入,以及...

    RichFaces4.5 JavaApi JSApi

    此外,`org.richfaces.model.SelectItem`类用于创建可选的下拉框或列表项,提供更灵活的数据绑定选项。`org.richfaces.renderkit.html_extended.AjaxRenderer`则负责处理AJAX渲染逻辑,确保页面更新只发生在必要的...

    Java开源 AJAX框架

    通过这些标签,开发者可以方便地实现如级联下拉框、输入字符匹配等功能,且建立在JavaScript框架之上。 3. **Struts AjaxTags**:此框架扩展了Struts的HTML标签库,为已有的Struts应用添加AJAX支持,无需深入了解...

    crm_java_spring_easyui-master.zip_CRM SPRING_crm easyui_crm java

    2. **crm_easyui**:EasyUI是基于jQuery的一个轻量级前端框架,它为开发者提供了丰富的UI组件,如表格、下拉框、树形控件等,使得快速开发用户友好的Web界面成为可能。在这个CRM项目中,EasyUI可能被用来构建系统的...

Global site tag (gtag.js) - Google Analytics