subhashis
subhashis

Reputation: 4878

Unable to do spring form submission

Hi I am new to spring MVC, and unable to do form submission.

My Jsp Code

<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>

My Controller

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

Upvotes: 0

Views: 27

Answers (1)

akuma8
akuma8

Reputation: 4691

Your problem is here :

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

This should be :

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

This is the only way to get your model after the POST and then you can retrieve the attribute's values of your model.

You don't add the code of your model but be sure that it has all attributes you put in each path attribute of your form.

Upvotes: 1

Related Questions