2016-11-09 7 views
0

これは、私がspring mvcを使用してドロップダウンボックスを作成するために実装したものです。 これは機能しています。しかし、私はすべての子供たちがデータベースレコードにmotherID="M-1"に所属するようにする必要があります。これは私にM-1に属する最初の子のみを与えます。データベースからのスプリングmvc-ドロップダウンボックスのオプション

どこで修正する必要がありますか?私は春のMVCの初心者です。

my_children.jsp

<form method="post" > 
      <div class="div_box"> 
       <select id="child_name" name="Child Name" > 
        <option value="top">Select your child</option> 
        <option value="">${firstName} ${lastName}</option> 

       </select> 
        <br> 
      <div align ="justify"> 
      <button type="button" class="btn btn-success active">View Details</button> 
      </div> 
      </div> 
    </form> 

コントローラ

@RequestMapping(value="/my_children", method = RequestMethod.GET) 
public void viewMyChild(ModelMap modelMap) { 
    ChildNameAccess childNameDAO = new ChildNameAccess(); 
    try{ 
     Child child = childNameDAO.getChildDataByMotherId("M-1"); 


     modelMap.addAttribute("firstName",child.getFirstName()); 
     modelMap.addAttribute("lastName",child.getLastName()); 
    } 

    catch(SQLException e) { 
     e.printStackTrace(); 
    } 
} 

DATAACCESSクラス

package com.emidwife.web.models.dataAccess; 

import java.sql.ResultSet; 
import java.sql.SQLException; 

import com.emidwife.web.models.entities.Child; 
import com.emidwife.web.models.utilities.Database; 


public class ChildNameAccess { 
    private Database connection = new Database(); 
    Child child = new Child(); 

    public Child getChildDataByMotherId(String motherID) throws SQLException { 
     connection.openConnection(); 
     try{ 
      ResultSet resultSet = connection.getData("SELECT * FROM childdetails WHERE MotherID=\'" + motherID + "\'"); 
      resultSet.next(); 
      //child.setChildId("1"); 
      child.setMotherId(resultSet.getString("MotherID")); 
      child.setFirstName(resultSet.getString("FirstName")); 
      child.setLastName(resultSet.getString("LastName")); 
      //child.setDateOfBirth(resultSet.getDate("DOB")); 

     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
     finally{ 
      connection.closeConnection(); 
     } 

     return child; 
    } 

}

答えて

1

主な問題は、スプリングMVCではありません。データベースから正しいselect文を実行する必要があります。 'M-1'ですべての子供を取得したい場合は、dataAccessクラスで以下の変更を加えることができます。

package com.emidwife.web.models.dataAccess; 

import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.util.List; 
import java.util.ArrayList; 

import com.emidwife.web.models.entities.Child; 
import com.emidwife.web.models.utilities.Database; 


public class ChildNameAccess { 
    private Database connection = new Database(); 

    public List<Child> getChildDataByMotherId(String motherID) throws SQLException { 
     connection.openConnection(); 
     List<Child> children = new ArrayList<Child>(); 
     try{ 
      ResultSet resultSet = connection.getData("SELECT * FROM childdetails WHERE MotherID=\'" + motherID + "\'"); 
      while(resultSet.next()){ 
      Child child = new Child(); 
      child.setMotherId(resultSet.getString("MotherID")); 
      child.setFirstName(resultSet.getString("FirstName")); 
      child.setLastName(resultSet.getString("LastName")); 
      children.add(child); 
      } 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
     finally{ 
      connection.closeConnection(); 
     } 

     return children; 
    } 
} 

また、次のようにコントローラを変更する必要があります。

@RequestMapping(value="/my_children", method = RequestMethod.GET) 
public void viewMyChild(ModelMap modelMap) { 
    ChildNameAccess childNameDAO = new ChildNameAccess(); 
    try{ 
     List<Child> children = childNameDAO.getChildDataByMotherId("M-1"); 

     modelMap.addAttribute("children ",children); 
    } 

    catch(SQLException e) { 
     e.printStackTrace(); 
    } 
} 

とJSP:この行 `一覧用のコントローラで

<form method="post" > 
      <div class="div_box"> 
       <select id="child_name" name="Child Name" > 
        <option value="top">Select your child</option> 
        <c:forEach items="${children}" var="child"> 
        <option value="">${child.firstName} ${child.lastName}</option> 
        </c:forEach> 
       </select> 
        <br> 
      <div align ="justify"> 
      <button type="button" class="btn btn-success active">View Details</button> 
      </div> 
      </div> 
    </form> 
+0

子供= childNameDAO.getChildDataByMotherId( "M-1");'それがエラーを与える「タイプのリストは、一般的なではありません。引数 'でパラメータ化することはできません。そのエラーは何ですか?私はjava.util.Listをインポートして解決しようとしましたが、その時点で未使用のインポートとして識別します – Hash

+0

'getChildDataByMotherId'メソッドを変更しましたか? –

+0

あなたが提案したすべての変更を行いました。 – Hash

関連する問題