получить значение параметра для создания диаграммы - PullRequest
0 голосов
/ 28 марта 2011

пользователь вводит две даты, ему нужно нажать на кнопку ...

если дата действительна, вызывается одна и та же страница jsp и в запросе задается некоторое значение ... в этом jsp,если setSeachDone равен true, диаграмма генерируется ...

для изображения вызывается другой обслуживаемый контроллер ... но значение, уже установленное в запросе, пусто

@Controller
@RequestMapping("/statError")
public class StatisticError {

@Autowired
private IUserService userService;

@InitBinder("statisticForm")
protected void initBinder(WebDataBinder binder) {
    binder.setValidator(new StatisticErrorFormValidator());
}

@RequestMapping(method = RequestMethod.GET)
public String statistic(Model model) {
    StatisticErrorForm statisticForm = new StatisticErrorForm();
    model.addAttribute("statisticForm", statisticForm);
    return "statisticError";
}

@RequestMapping(method = RequestMethod.POST)
public String statistiqueResult(@Valid @ModelAttribute StatisticErrorForm statisticForm, BindingResult result, ModelMap model, HttpServletRequest request,
    HttpServletResponse response) {

    if (!result.hasFieldErrors() && !result.hasErrors()) {

        request.setAttribute("startDate", statisticForm.getStartDate());
        request.setAttribute("endDate", statisticForm.getEndDate());
        statisticForm.setSearchDone(true);
    }

    model.addAttribute(statisticForm);

    return "statisticError";
}

}

контроллер сервлета

@Controller
@RequestMapping("/statError.jpg")
public class ImageErrorController {

@Autowired
private IUserService userService;

@RequestMapping(method = RequestMethod.GET)
public void generateChart(HttpServletRequest request,
        HttpServletResponse response) {
   if (request.getAttribute("startDate") != null && request.getAttribute("endDate") != null) {

      response.setContentType("image/jpg");
      AxisChart axisChart = userService.generateChart();
      ServletEncoderHelper.encodeJPEG(axisChart, 1.0f, response);

    }

}

Есть ли способ отправить введенное пользователем значение в imageErrorController?добавить модель для генерации диаграммы?

1 Ответ

1 голос
/ 28 марта 2011

Вам нужно передать их как параметры URL изображения в вашем представлении, например:

<img src = "<c:url value = "/statError.jpg">
        <c:param name = "startDate" value = "${startDate}" />
        <c:param name = "endDate" value = "${endDate}" />
    </c:url>" />
...