2013-06-20 18 views
5

私はあなたに私の問題を教えてください。データを渡す方法<form:select> Spring MVC

私は、JSPページ上に構築されたと私はページsearch.jspとユーザーを要求するとき<form:select>のいくつかは、それDBからデータを抽出し、レンダリングするために<form:select>を使用して、私のページに使用するものを選択する必要があります:私がする必要がある

<form action="result" method="get" > 

    <table> 

    <tr> 
    <th>Date fro DB:</th> 
    <td><form:select path="listOfDates"> 
    <form:option value="NONE"> --SELECT--</form:option> 
    <form:options items="${listOfDates}"></form:options> 
    </form:select> 
    </td> 
    </tr> 

    <tr> 
    <th>Name of company from DB:</th> 
    <td><form:select path="listOfInstitutionsNames"> 
    <form:option value="NONE"> --SELECT--</form:option> 
    <form:options items="${listOfInstitutionsNames}"></form:options> 
    </form:select> 
    </td> 
    </tr> 

    <tr> 
    <th>Type of company from DB:</th> 
    <td> 
    <form:select path="listOfInstitutionsTypes"> 
    <form:option value="NONE"> --SELECT--</form:option> 
    <form:options items="${listOfInstitutionsTypes}"></form:options> 
    </form:select> 
    </td> 
    </tr> 

    <tr> 
    <td><input type="submit" value="Извлечь"/></td> 
    </tr> 

    </table> 

    </form> 

私のコントローラへのリクエストパラメータとして選択するものをユーザー渡し、ここでコントローラのコードは次のとおりです。

@Controller 
public class HomeController{ 


    @Autowired 
    private ControllerSupportClass controllerSupportClass; 


     @RequestMapping(value="/search", method=RequestMethod.GET) 
     public String search(Model model) { 

      List<Date> listOfDates = controllerSupportClass.findAllDatesForm(); 
      List<String> listOfInstitutionsNames = controllerSupportClass.findAllInstitutionsForm(); 
      List<String> listOfInstitutionsTypes = controllerSupportClass.findAllTypesForm(); 
      model.addAttribute("listOfInstitutionsTypes", listOfInstitutionsTypes); 
      model.addAttribute("listOfInstitutionsNames", listOfInstitutionsNames); 
      model.addAttribute("listOfDates", listOfDates); 

      return "search"; 

     } 


     @RequestMapping(value ="/result", method=RequestMethod.GET) 
     public String SecondActionPage(@RequestParam String particularDate, 
             @RequestParam String nameOfInstitution, 
             @RequestParam String typeName, 
             Model model) throws Exception { 


       if(particularDate !="" && nameOfInstitution.trim() !="" && typeName.trim()=="") {     
        controllerSupportClass.findWithDateAndName(nameOfInstitution, particularDate, model);     
       } else if(particularDate.trim() !="" && nameOfInstitution.trim() =="" && typeName.trim() !="") {      
        controllerSupportClass.findWithAddedDateAndType(typeName, particularDate, model);     
       } else if(particularDate.trim() !="" && nameOfInstitution.trim() =="" && typeName.trim() ==""){   
        controllerSupportClass.findWithAddedDate(particularDate, model);  
       } else if(particularDate.trim() !="" && nameOfInstitution.trim() !="" && typeName.trim() !="") { 
        throw new Exception("Search by choose all parameters is not exceptable"); 
       } else {  
        throw new Exception("You didn't put any search parameters");  
       }   
      return "search"; 
     } 


} 

あなたがパラメータを取得するために@RequestParam注釈私SecondActionPage()メソッドの使用を見ることができるようにそれらを検証した後、別のメソッドに渡して、要求パラメータに対応するデータを抽出します...しかし問題は、それらを渡すことができないことです。それはちょうどこのような私を示すhttp://localhost:8080/controller/result?と後?何も通過しない。どのように私はこのすべての私の選択したパラメータをserach.jspから渡すことができますありがとう。

答えて

10

<form:form>の中に<form:select>を使用する必要があります。

それは次のようになります。

search.jsp:

<form:form modelAttribute="myform" action="result" method="get" > 
    <form:select path="nameOfInstitution"> 
    <form:option value="NONE"> --SELECT--</form:option> 
    <form:options items="${listOfInstitutionsNames}"></form:options> 
    </form:select> 
    ... 
</form:form> 

をHomeController.java:

@RequestMapping(value = "/search", method = RequestMethod.GET) 
public String search(Model model) { 
    ... 
    model.addAttribute("myform", new MyForm()); 
    return "search"; 
} 

@RequestMapping(value = "/result", method = RequestMethod.GET) 
public String SecondActionPage(@RequestParam String nameOfInstitution, 
    Model model, 
    @ModelAttribute("myform") MyForm myform) 
    throws Exception { 
    ... 
} 

MyForm.java:

public class MyForm { 
    private String nameOfInstitution; 

    public String getNameOfInstitution() { 
    return nameOfInstitution; 
    } 

    public void setNameOfInstitution(String nameOfInstitution) { 
    this.nameOfInstitution = nameOfInstitution; 
    } 
} 

・ホープ、このことができます。

+0

私を助けましたが、すべての私の 'Search'属性に対して新しい' command'オブジェクトを作成する必要があります –

関連する問題