2013-06-20 7 views
5

मैं आपकी समस्या को आपके साथ साझा करना चाहता हूं।<form:select> से डेटा कैसे पास करें वसंत एमवीसी

मैं jsp पृष्ठ पर बनाया गया है और अपने पन्ने पर <form:select> से कुछ का उपयोग यह <form:select> का उपयोग डीबी से निकालने और डेटा प्रस्तुत करने के लिए जब मैं अनुरोध पेज search.jsp और उपयोगकर्ता का चयन करने के एक है:

<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"; 
     } 


} 

तुम मेरे SecondActionPage() विधि उपयोग पैरामीटर प्राप्त करने के लिए @RequestParam एनोटेशन देख सकते हैं यूआरएल से और उन्हें सत्यापित करने के बाद और अनुरोध पैरामीटर पर संबंधित डेटा निकालने के लिए उन्हें दूसरी विधि में पास करें ... लेकिन समस्या यह है कि मैं उन्हें पास नहीं कर सकता। यह मुझे इस 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

ने मेरी मदद की, लेकिन मेरे सभी 'खोज' विशेषताओं के लिए नई 'कमांड' ऑब्जेक्ट बनाने की आवश्यकता है –

संबंधित मुद्दे