【问题标题】:Load database values to Combo box - JSP, Hibernate将数据库值加载到组合框 - JSP、Hibernate
【发布时间】:2015-09-27 16:24:33
【问题描述】:

我正在使用 hibernate 框架开发一个 Web 应用程序。我正在使用 JSP 进行查看。我需要将数据库表中的特定数据加载到组合框中。 在这种情况下,我需要将 ROLE 表中的所有角色 ID 加载到组合框 我的代码如下。

 <tr>
                    <th align="left"> Role ID </th>
                    <td>
                        <!-- Combobox to get role id's -->

                        <%
                            try {
                                SessionFactory sf = HibernateUtil.getSessionFactory();
                                Session s = sf.openSession();
                                Transaction tx = s.beginTransaction();

                                Role se = new Role();

                                String hql = "select ROLEID from EAD.ROLE";
                                Query q = s.createQuery(hql);
                                ArrayList li = (ArrayList) q.list();
                                Iterator ie = li.iterator();
                                int size = li.size();
                        %>  

                        <select>   
                            <%
                                while (ie.hasNext()) {
                                    Integer un = se.getRoleid();
                            %>

                            <option value="<%= un%>"><%= un%></option>

                            <%
                                }
                            %>
                        </select>   
                        <%
                            } catch (HibernateException he) {
                                he.printStackTrace();
                    }%>    

                        <!-- end of combobox-->
                    </td>
                </tr> 

角色.java

public class Role implements java.io.Serializable {

    private int roleid;
    private String title;
    private String rolename;

    public Role() {
    }

    public Role(int roleid, String title, String rolename) {
        this.roleid = roleid;
        this.title = title;
        this.rolename = rolename;
    }

    public int getRoleid() {
        return this.roleid;
    }

    public void setRoleid(int roleid) {
        this.roleid = roleid;
    }

    public String getTitle() {
        return this.title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getRoleName() {
        return this.rolename;
    }

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

}

我的问题是即使组合框没有显示在页面中。有什么办法解决这个问题吗??如果可以,请尽快提出解决方案。谢谢:)

【问题讨论】:

  • 能否格式化源代码。 IDE 使用的是什么?
  • 我正在使用 netbeans IDE
  • 如果列表大小为 0,则检查 ArrayList 大小,然后没有为选择选项设置值。如果在
  • 在netbeans中选择代码,按Ctrl+Shift+F格式化代码。然后编辑帖子替换编辑的代码。
  • 另外,您是否在控制台中收到错误消息?

标签: java hibernate jsp


【解决方案1】:

尝试显示选项,

查询:"select r.roleid from Role r";

注意:如果列表没有元素或大小为零,则组合框中不会显示任何选项值

替换&lt;td&gt;&lt;/td&gt;中的以下代码:

<center>   
    <select>  
        <%
            try {
                SessionFactory sf = HibernateUtil.getSessionFactory();
                Session s = sf.openSession();
                Transaction tx = s.beginTransaction();

                Role se = new Role();

                String hql = "select r.roleid from Role r";
                Query q = s.createQuery(hql);
                ArrayList li = (ArrayList) q.list();
                System.out.println("List Size = " + li.size());
                /*
                    if List Size is 0 then no option values will show
                */
                Iterator ie = li.iterator();
        %>

        <%
            while (ie.hasNext()) {
                Integer un = se.getRoleid();
        %>

        <option value="<%= un%>"><%= un%></option>

        <%
            }
        %>

        <%
            } catch (Exception he) {
                he.printStackTrace();
            }
        %>
    </select>   
</center>

【讨论】:

  • 使用“从角色 r 中选择 r.roleid”给了我一个 java 堆异常。所以我将查询更改为“从 EAD.ROLE r 中选择 r.ROLEID”。现在组合框正在显示并且没有加载任何值。有什么想法吗??
  • 控制台输出列表大小 = 是什么 0 或其他?
  • 没有显示控制台输出 :( 但是有一条 GlassFish 服务器消息说“严重:org.hibernate.QueryException: undefined alias: ROLEID [select ROLEID from ROLE]”
  • 你需要给类起别名,然后在列中引用它:角色是类,它的别名是let r。然后查询:“从角色 r 中选择 r.roleid”
  • 当我提出那个查询时,我得到一个 Java 堆空间错误。 :(
猜你喜欢
  • 2012-10-08
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 2014-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多