如何从数据库中检索数据并使用spring mvc在jsp中显示?

时间:2016-12-13 10:23:44

标签: javascript jsp spring-mvc

我正在尝试从数据库加载数据并插入到下拉列表中: 我无法检索数据

我的javascript看起来像:

    <script type="text/javascript">
     function getEmployee(row)
     {

     // $('#brand'+row)[0].options.length = 0;

        var xmlhttp;   
        if (window.XMLHttpRequest)
        {//code for IE7+, Firefox, Chrome, Opera, Safari
           xmlhttp=new XMLHttpRequest();
        }
        else
        {// code for IE6, IE5 
           xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function()
        {
           if (xmlhttp.readyState==4 && xmlhttp.status==200)
           {
               var status=xmlhttp.responseText;

               var x = document.getElementById("employee"+row);
               var option = document.createElement("option");
               option.text = "";
               x.add(option);
               var temp = status.split("#");
               for(var i=1;i<temp.length;i++)
               {
                    var temp_val=temp[i].split("//");
                    $('#employee'+row).append( new Option(temp_val[1],temp_val[0]));
                   }
           }
        }

        xmlhttp.open("GET","LoadEmployee",true);
        xmlhttp.send();
     }

     function loadEmployee()
        {
            for(var i=1;i<=10;i++)
                {
                    getEmployee(i)
                }
        }

我正在尝试将数据加载到同一个jsp中的下拉列表中:

      <%
        int i=1;
     {%>
     <div class="form-group">
    <label class="control-label">
    Employees <span class="symbol required"></span>
    </label>
    <select class="form-control" name="employee<%=i %>" path="employee<%=i     %>"  >

    </select>
    </div>
    <%} %>

我的控制器如下:

   @RequestMapping(value = "/LoadEmployee", method = RequestMethod.GET) public void LoadEmployee(HttpServletRequest request, HttpServletResponse response) throws SQLException, IllegalStateException, IOException 
{       

        System.out.println("In Load Brands");

        String employee=homeDao.getEmployee();
        response.setContentType("text/plain");
        response.getWriter().write(employee);
}

我的实施如下:

公共类Homeimpl实现HomeDao {

@Override
public String getEmployee() {
    String models="";
    String query = "SELECT member_name FROM mobike.mst_memberdetail;";
    System.out.println(query);
    try
    {
    ResultSet rs = null;
    Statement st = null;
    Connection con = com.mobike.datasource.DbConnection.getDataSource();


            st = con.createStatement();
            rs  = st.executeQuery(query); 


            rs.close();
            st.close();
            con.close();
    }
    catch (Exception e){System.out.println(e);}

    return models;

}

1 个答案:

答案 0 :(得分:1)

我认为您想要考虑应用程序的体系结构,以及每个部分应该负责的内容。

MVC中的V代表View。您的控制器方法返回void,因此根本不返回视图。相反,您直接写入响应输出流。

JSP是一个视图文件。您的控制器方法应该向模型添加内容(在您的情况下,Employee),然后返回逻辑视图名称。视图(JSP)将有占位符来解析模型属性(例如:$ {employee})

话虽如此,以上情况适用于传统的MVC应用程序,它基于整页请求/响应。
你正在使用javascript(一些非常老派的JS btw,你考虑过使用像angular或甚至jquery这样的库来为你简化这个吗?)。无论如何,你的JS似乎正在发出ajax请求来获取员工数据 考虑到这一点,您的第一页html可以在没有Spring MVC控制器方法的情况下加载到浏览器中。它可以是带有js的简单静态html文件(但理想情况下,js本身就是一个单独的静态文件) 当js提出ajax请求时,您只需要它返回员工representation - 您不需要完整的jsp视图。然后,您的js回调可以将返回的数据插入到DOM中 我对上面的短语representation的使用是有意的,因为我在这里开始描述的更符合RESTful架构(尽管REST不仅仅是返回对象的表示)

我猜你是相当新的并且可能正在接受一两个教程?我认为你最好的选择是阅读这个主题,了解不同组件的作用,并找到更新的教程。

相关问题