我想将消息列表从帖子重定向到获取。

 @RequestMapping(method = RequestMethod.GET, value = "/ManageNonRoutedActivities")
public ModelAndView manageNonRoutedActivities(ModelAndView modelAndView,
                                              ArrayList<Message> messages,
                                              @ModelAttribute("nonRoutedActivity") NonRoutedActivity nonRoutedActivity,
                                              @RequestParam(value = "search", defaultValue = "") String search,
                                              @RequestParam(value = "orderField", defaultValue = "Description") String orderByField,
                                              @RequestParam(value = "orderDirection", defaultValue = "asc") String orderByDirection) {

    ManageNonRoutedActivitiesRequest request = new ManageNonRoutedActivitiesRequest(new ManageNonRoutedActivitiesDAOImpl(), search, orderByField, orderByDirection);

    System.out.println(messages.size());

    modelAndView.setViewName("default");
    modelAndView.addObject("viewModel", new ManageNonRoutedActivitiesImpl(request, search, orderByField, messages));
    return modelAndView;
}

@RequestMapping(method = RequestMethod.POST, value = "/ManageNonRoutedActivities")
public String updateOrCreateActivity(@Valid NonRoutedActivity nonRoutedActivity,
                                     BindingResult result,
                                     RedirectAttributes redirectAttributes) {
    SecurityAccessor securityAccessor = new SecurityAccessor();
    ArrayList<Message> messages = new ArrayList<>();

    if (result.hasErrors()) {
        return manageErrorsForManageNonRoutedActivities(result, nonRoutedActivity, redirectAttributes, messages);
    }

    if (nonRoutedActivity.shouldUpdateEndDate()) {
        nonRoutedActivity.updateEndDate();
        messages.add(new Message("endDate.add.success", "success"));
    } else
        messages.add(new Message("activity.add.success", "success"));

    nonRoutedActivity.setModifiedBy(securityAccessor.getLoggedInUsersName());
    nonRoutedActivity.save();
    redirectAttributes.addFlashAttribute("messages", messages);
    return "redirect:/ManageNonRoutedActivities";
}


我遇到的问题是控制器的get部分中的消息一直显示为空。我最初将此messages实例作为List<Message>,但是由于messages可以为null,因此无法正常工作。由于无法实例化List,因此引起了问题。这就是为什么我使用ArrayList的原因。但是,这不起作用,因为ArrayList没有正确绑定。任何人都知道为什么会这样,以及如何在不为列表创建包装器的情况下解决此问题?

最佳答案

因此,我不确定这是否是最佳解决方案,但是如果我删除redirect属性的名称,它将起作用。

10-01 07:20
查看更多