1

是否可以利用ArrayListHashMap作为“会话范围组件”(即 ModelAttribute 对象)而不是创建 pojo?

如果可能的话,我想创建一个会话范围的模型属性,例如 - 例如, "ArrayList<MyPojo>""HashMap<String, MyPojo>"- 在不同的控制器之间共享。

但是,我见过的模型属性组件的唯一示例是使用“@component”“@Scope(value="session") ...等注释的 POJO 类。

感谢您对此的任何指导。

sd

4

1 回答 1

1

您可以使用 ModelMap 作为命令 bean,并将 ModelMap 设置为会话属性。

@SessionAttributes("testform")
public class testController{
    public ModelAndView testmethod(@ModelAttribute("testform")  ModelMap testMap,HttpServletRequest request){
     /*
      Access form variable using ModelMap.
    */
    }
}

** 编辑发送 ArrayList **我不确定你是否可以做 HashMap,但你绝对可以做 MyPojo 的 Array 即 MyPojo[]。请在下面找到我添加了隐藏类型输入 html 元素的 JSP 和控制器。下面的代码假定您的 MyPojo 类有一个名为 selected 的成员。希望这可以帮助。

<%@taglib uri="/spring.tld" prefix="spring"%>
<spring:bind path="MyPojo[${statusInd.index}].selected">
input type="hidden"
   name='<c:out value="${status.expression}"/>'
   id='<c:out value="${status.expression}" />'
  value='<c:out value="${status.value}" />' />                                  
</spring:bind>      

@SessionAttributes("testform")
public class testController{
    public ModelAndView testmethod(@ModelAttribute("testform")  MyPojo[] testMyPojo,HttpServletRequest request){
     /*
      Access form variable using ModelMap.
    */
    }
}   

P:S :- 您需要告诉您的 JSP testform 是命令 Bean 的名称才能使其工作。

于 2013-07-31T04:43:40.480 回答