@RequestMapping(method = RequestMethod.POST) public String processSubmit( @Valid FtsQueryFormBean queryFormBean, BindingResult result, @ModelAttribute("ajaxRequest") boolean ajaxRequest, Model model, RedirectAttributes redirectAttrs) { /* validate the query form*/ if (result.hasErrors()) { System.err.println(result.getFieldError()); return "query-fts"; } // Typically you would save to a db and clear the "form" attribute from the session // via SessionStatus.setCompleted(). For the demo we leave it in the session. // String message = "Form submitted successfully. Bound " + queryFormBean; QueryCommand query = createQuery(queryFormBean); List<TOption> options = fits_webservice_broker.query(query); Calendar travel_of_day = null; if (query.getOriginalRequest().getDepartureTime() != null) { travel_of_day = query.getOriginalRequest().getDepartureTime(); } else { travel_of_day = query.getOriginalRequest().getArriveTime(); } model.addAttribute("caption", "Transport options ranked using preferences"); DateFormat df = new SimpleDateFormat("MMM dd, yyyy"); String formattedDate = df.format(travel_of_day.getTime()); model.addAttribute("date_of_travel", formattedDate); model.addAttribute("origin_postcode", queryFormBean.getPostal_code_f()); List<TOption> relaxed_options = new ArrayList<TOption>(); List<TOption> not_relaxed = new ArrayList<TOption>(); for (TOption option : options) { if (option.isRelaxed()) { relaxed_options.add(option); continue; } not_relaxed.add(option); } model.addAttribute("options", not_relaxed); System.out.println("relaxed option size " + relaxed_options.size()); model.addAttribute("relaxed_options", relaxed_options); System.out.println("query count:" + count); count++; return "matching"; }