【问题标题】:How to pass model attributes between method inside controller Spring MVC如何在控制器Spring MVC内部的方法之间传递模型属性
【发布时间】:2013-08-07 20:21:54
【问题描述】:

大家好。

我在控制器中有几个方法我想在它们之间传递模型属性, 第一种方法从数据库中获取数据:

@RequestMapping(value="/result", method=RequestMethod.GET)
public String resultHTML(@RequestParam String name, @ModelAttribute("fbosAttributes") FormBackingObjectSearch fbos,BindingResult bindingResult, Model model) throws Exception {

    model.addAttribute("findAttributes", educationWebService.fetchByNam(fbos.getName()));

return "search";

另一种方法必须从上面的方法中创建来获取属性:

@RequestMapping(value="/result.xls", method=RequestMethod.GET)
public String resultXLS(@ModelAttribute("findAttributes") ArrayList<FormDate> mylists, Model model) throws Exception {  
    model.addAttribute("findAttributesNew", mylists);
    return "xlspage";
}

当我检查 mylists.size() 时,它显示/返回 0

请帮忙。

【问题讨论】:

  • 不清楚你的意思;如果你打电话给resultXLS from resultHTML 就打电话给它,但这听起来像是一个有问题的设计。您需要更准确地解释您要做什么。
  • 简单地从一个方法传递到另一个模型属性,我从 resultHTML 到 resultXLS 方法。
  • 只是一个方法调用——调用它。
  • 我不明白先生。你能详细描述一下吗?
  • 存储fetchByNam的结果。将它们传递给resultXLS

标签: spring jakarta-ee servlets spring-mvc


【解决方案1】:

你可以通过这个注解给你的控制器类添加会话属性:

@SessionAttributes({"findAttributes"})

【讨论】:

  • 我可以,先生。但这看起来不是个好主意。我想改用请求属性,但是怎么用???
  • @UDS:如果您不想使用会话属性,那么您可以从方法调用educationWebService.fetchByNam(fbos.getName()) 组织缓存。或者在这两个函数上调用这个方法。
  • 如何组织cach Sir??你能帮忙吗??
  • @UDS:只需将结果存储在 Map> 中的函数调用上。其中字符串是函数调用的关键,您可以在第一个方法中传递给模型并将其用作 GET 属性以从网页调用第二个函数。
  • 我不明白 store 哪里 ass 属性如何?怎么通过?我想使用请求范围。我该怎么做?
猜你喜欢
  • 2010-12-31
  • 1970-01-01
  • 2011-11-17
  • 2013-02-25
  • 1970-01-01
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 2016-11-09
相关资源
最近更新 更多