如何在html页面中传递DB结果集值

时间:2015-02-03 05:06:23

标签: java html

我有一个简单的MVC应用程序,使用java类,它将获取DB结果值。现在我想在HTML中传递这些DB值。我怎么能这样做?

我使用html5作为View部分。

这是我的Java代码:

package com.mvc.dao;

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import com.mvc.bean.HbBean;
    import com.mvc.util.DBConnection;


    public class HBDao 
    {

        public String FetchHBRecords(HbBean hb)
        {



            String Deviceid = hb.getNidevid();  //Keeping user entered values in temporary variables.

            Connection con = DBConnection.createConnection();           
            PreparedStatement pstmt = null;
            ResultSet resultSet = null;


            try
            {
                pstmt = con.prepareStatement("SELECT hbtimestamp,battvolt,eventtype01,eventdata01,eventtype02,eventdata02,sensordata2 "
                    +"FROM nidhb where nidevid=? ORDER  BY hbtimestamp ");
                pstmt.setString(1, Deviceid);
                resultSet = pstmt.executeQuery(); 

                resultSet = pstmt.executeQuery(); 


                while(resultSet.next()) // Until next row is present otherwise it return false
                {


                    int battvolt=resultSet.getInt("battvolt");
                    int eventtype01=resultSet.getInt("eventtype01");
                    int eventdata01=resultSet.getInt("eventdata01");
                    int eventtype02=resultSet.getInt("eventtype02");
                    int eventdata02=resultSet.getInt("eventdata02");
                    int sensordata2=resultSet.getInt("sensordata2");

                    // hb.setHbtimestamp(hbtimestamp);
                    hb.setBattvolt(battvolt);
                    hb.setEventtype01(eventtype01);
                    hb.setEventdata01(eventdata01);
                    hb.setEventtype02(eventtype02);
                    hb.setEventdata02(eventdata02);
                    hb.setSensordata2(sensordata2);




                } 
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
             return "Invalid user credentials"; // Just returning appropriate message otherwise
         }
    }
}

3 个答案:

答案 0 :(得分:1)

由于您还没有提到您正在使用的MVC框架,我假设您需要一个特定于JSP的解决方案。

看到代码,似乎你从后端获取值并将它们放在Bean HbBean中。现在你打算在JSP中使用这个bean。

但是,您的代码中似乎存在一些问题。

  1. FetchHBRecords()函数将始终返回字符串"Invalid user credentials"。您是否提到过成功登录的任何休息条件?
  2. HBDao DAO类,它尝试与数据库建立连接,并在{{1}中实例化 Bean类 HbBean功能。这样,FetchHBRecords()(它是HbBean的一个实例)的范围仅限于此函数!您最好返回Bean类或生成HTML hb本身
  3. 如果您解决了这些问题,可以继续使用两个选项。

    选项-1 使用Scriptlet并导入Bean类

    FetchHBRecords()

    详细Example

    选项-2 使用JSP Java Bean(推荐)

    <%@page import="com.javatpoint.HbBean"%> <% // Assuming you have already set the Bean instance in request attribute HbBean bean = (HbBean)request.getAttribute("bean"); out.print(bean.getBattvolt()); out.print(bean.getEventtype01()); out.print(bean.getEventdata01()); %> 动作声明了一个用于JSP的JavaBean。 与<jsp:useBean>一起,您可以使用<jsp:useBean...>操作来访问get方法,使用<jsp:getProperty/>操作来访问set方法。以下是完整语法:

    <jsp:setProperty/>

    详细Example

    希望它有所帮助!

答案 1 :(得分:0)

调用FetchHBRecords(HbBean hb)的代码可以从HbBean对象中提取值并生成HTML,或者将值传递给JSP进行渲染。

答案 2 :(得分:0)

这可能不是一个好的答案,但它来自我的实践

<jsp:useBean id="postserivce" lass="com.anoop.live_tech.services.PostService"></jsp:useBean>


<jsp:useBean id="post" class="com.anoop.live_tech.domain.Post"></jsp:useBean>

使用JSP标记

<%
  ArrayList list=(ArrayList)postserivce.getPosts();

%>

及其展示

<body>

 <%
for(int i=0;i<list.size();i++)
{
 post=(Post)list.get(i);
 String uname=postserivce.getunameFromuId(post.getUserId());

%>

<table align="center"> 
<tr><td align="center">
<h2><%=post.getPostTitle() %></h2></td>
</tr>
<tr><td>
<h1><%=post.getPostSubject() %></h1>
</td>
</tr>
<tr><td>
<h3 align="right"><%=post.getPostDate() %></h3></td>
</tr>
<tr><td>
<h4 align="right"><%=uname%></h4></td>
</tr>
<tr><td>------------------------------------------------------------</td>      </tr>
</table>



<%
  }
%>

这里的Post类是我的bean文件。