2017-04-19 46 views
0

嗨,我是新的春季MVC,無法做表單提交。無法做春季表單提交

我的JSP代碼

<form:form method="POST" action="save" commandName="report"> 
<div id="collapseOne" class="panel-collapse collapse in" 
    role="tabpanel" aria-labelledby="headingOne"> 
    <div class="panel-body"> 
     <div class="col-md-3 col-sm-12 col-xs-12 form-group" > 
      <label><spring:message code="label.report.report_type"/><span class="required">*</span></label> 

      <form:select id="reportTypeSelect" class="form-control" path="reportType"> 

       <form:options items="${report.reportTypes}"></form:options> 

      </form:select> 
      <!-- <select 
       class="form-control" name="scheduleType"> 
       <option><spring:message code="label.report.chose_type"/></option> 
       <option><spring:message code="label.report.adhoc"/></option> 
       <option><spring:message code="label.report.scheduled"/></option> 
      </select> --> 
     </div> 
     <div class="form-group"> 
      <label class="control-label col-md-3 col-sm-3 col-xs-12"> 
      <spring:message code="label.report.sql_query"/></label> 
      <div class="col-md-9 col-sm-9 col-xs-12"> 
       <form:textarea class="resizable_textarea form-control" 
        placeholder="Write Sql Queries to exceute the records ..." name="query" path="reportQuery"></form:textarea> 
      </div> 
     </div> 

     <div class="col-md-3 col-sm-12 col-xs-12 form-group"> 
      <label><spring:message code="label.report.query_name"/><span class="required">*</span></label> 
      <form:input type="text" placeholder="Query Name" name="reportQueryName" path="reportType" class="form-control"></form:input> 
     </div> 

     <div class="col-md-3 col-sm-12 col-xs-12 form-group"> 
      <label><spring:message code="label.report.schedule_date"/><span class="required">*</span></label> <input 
       id="eventDate" 
       class="date-picker form-control col-sm-12 col-xs-12" 
       required="required" type="text"> 
     </div> 
     <div class="col-md-6 col-sm-12 col-xs-12 form-group"> 
      <label><spring:message code="label.report.emailid"/><span class="required">*</span></label> <form:input 
       type="text" placeholder="Maximum 4 Email Recepients" name="email" path="emails" class="form-control"></form:input> 
     </div> 
     <div class="clearfix"></div> 
     <div class="form-group"> 
      <div class="button-right"> 
       <!--<button type="submit" class="btn btn-primary">Save</button>--> 
       <button type="submit" class="btn btn-success"> <spring:message code="label.button.save"/> 
        </button> 
      </div> 
     </div> 
    </div> 
</div> 
</form:form> 

我的控制器

@Controller 
public class ReportsViewController { 

    private static final Logger logger = LoggerFactory.getLogger(ReportsViewController.class); 

    @RequestMapping(value="/reports",method=RequestMethod.GET) 
    public String displayReports(ModelMap model) { 
     logger.info("Start of displayReports()..............."); 

     ReportsViewBean report = new ReportsViewBean(); 
     report.setReportTypes(getReportType()); 
     model.addAttribute("report", report); 

     logger.info("End of displayReports()..............."); 
     return "reportsView"; 
    } 

    @RequestMapping(value="/reports/save",method=RequestMethod.POST) 
    public String updateReports(@ModelAttribute("query") String query) { 
     System.out.println("username" + query); 
     return "reportsView"; 
    } 

    private List<String> getReportType() { 
     List<String> type = new ArrayList<String>(); 
     type.add("Adhoc"); 
     type.add("Schedule"); 
     return type; 
    } 
} 

回答

1

你的問題是在這裏:

@RequestMapping(value="/reports/save",method=RequestMethod.POST) 
public String updateReports(@ModelAttribute("query") String query) 

這應該是:

@RequestMapping(value="/reports/save",method=RequestMethod.POST) 
public String updateReports(@ModelAttribute("report") ReportsViewBean report) 

這是在POST之後獲得模型的唯一方法,然後您可以檢索模型的屬性值。

您不添加模型的代碼,但要確保它具有您在表單的每個path屬性中放入的所有屬性。