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