2016-12-13 11 views
-1

私は、データベースからデータをロードし、ドロップダウンに挿入しようとしています: データを取得することはできませんよようデータベースからデータを取得し、spring mvcを使用してjspで表示する方法は?

私の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の下にドロップダウン:

@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

私はあなたがアプリケーションのアーキテクチャについて考えたいと思うし、何をすべきを実装各部分の責任を負います。

MVCのVは、Viewの略です。あなたのコントローラメソッドはvoidを返すので、ビューはまったく返されません。代わりに、応答出力ストリームに直接書き込んでいます。

JSPはビューファイルです。コントローラメソッドでは、モデルにケース(ケースの場合はEmployee)が追加され、論理ビュー名が返されます。ビュー(JSP)には、モデル属性($ {employee}など)を解決するためのプレースホルダーがあります。

これは、従来のMVCアプリケーションでは完全ページ要求/応答に基づいています。
あなたはjavascriptを使っています(いくつかの非常に古いJS Btw、これを簡略化するために角度やjqueryなどのライブラリを使用したことはありますか?)。とにかく、あなたのJSは、従業員のデータを取得するためのajaxリクエストを作成しているようです。
これを念頭において、htmlの最初のページをSpring MVCコントローラメソッドなしでブラウザに読み込むことができます。それはjsを持つ単純な静的なhtmlファイルにすることができます(ただし、jsはそれ自体別の静的ファイルになります)
jsがAjaxリクエストを作成するときには、従業員representationを返すだけで済みます。完全なJSPビュー。あなたのjsコールバックは返されたデータをDOMに補間することができます
上記のフレーズrepresentationの使用は意図的なものです。私がここで説明し始めたことは、RESTfulなアーキテクチャに沿ったものです

私はこれについてかなり新しいと思いますが、おそらくチュートリアル2か2に従っていますか?私はあなたの最善の選択肢は、別のコンポーネントが何をしているのかを理解するために、もう少し詳しく話題を読んで、より最新のチュートリアルを見つけることだと思います。

関連する問題