получить значение параметра для создания диаграммы

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

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

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

@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? добавить модель в generateChart?


person redfox26    schedule 28.03.2011    source источник


Ответы (1)


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

<img src = "<c:url value = "/statError.jpg">
        <c:param name = "startDate" value = "${startDate}" />
        <c:param name = "endDate" value = "${endDate}" />
    </c:url>" />
person axtavt    schedule 28.03.2011
comment
хорошо, я пробовал это, но request.getAttribute (startDate) по-прежнему имеет значение null - person redfox26; 29.03.2011