Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以利用ArrayList作为会话范围的组件—ModelAttribute—而不是创建pojo?_Java_Jsp_Spring Mvc - Fatal编程技术网

Java 是否可以利用ArrayList作为会话范围的组件—ModelAttribute—而不是创建pojo?

Java 是否可以利用ArrayList作为会话范围的组件—ModelAttribute—而不是创建pojo?,java,jsp,spring-mvc,Java,Jsp,Spring Mvc,是否可以利用ArrayList或HashMap作为“会话范围的组件”(即ModelAttribute对象),而不是创建pojo 如果可能的话,我想创建一个会话范围的modelattribute,例如,“ArrayList”或“HashMap”,以便在不同的控制器之间共享 但是,我见过的modelattribute组件的唯一示例是用“@component”和“@Scope(value=“session”)等注释的POJO类 谢谢你的指导 sd您可以使用ModelMap作为命令bean,并将Mode

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

如果可能的话,我想创建一个会话范围的modelattribute,例如,
“ArrayList”
“HashMap”
,以便在不同的控制器之间共享

但是,我见过的modelattribute组件的唯一示例是用“@component”“@Scope(value=“session”)等注释的POJO类

谢谢你的指导


sd

您可以使用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数组,即MyPojo[]。请在下面找到JSP和控制器,我在其中添加了一个隐藏类型输入html元素。下面的代码假设你的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.
    */
    }
}   

输入类型=“隐藏”
名称=“”
id=“”
值=“”/>
@会期贡献(“测试表”)
公共类测试控制器{
公共模型和视图测试方法(@modeldattribute(“testform”)MyPojo[]testMyPojo,HttpServletRequest){
/*
使用ModelMap访问表单变量。
*/
}
}   

p:S:-您需要告诉您的JSP testform是命令Bean的名称,这样才能工作。

您可以使用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数组,即MyPojo[]。请在下面找到JSP和控制器,我在其中添加了一个隐藏类型输入html元素。下面的代码假设你的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.
    */
    }
}   

输入类型=“隐藏”
名称=“”
id=“”
值=“”/>
@会期贡献(“测试表”)
公共类测试控制器{
公共模型和视图测试方法(@modeldattribute(“testform”)MyPojo[]testMyPojo,HttpServletRequest){
/*
使用ModelMap访问表单变量。
*/
}
}   

p:S:-您需要告诉您的JSP testform是命令Bean的名称,这样才能工作。

Hi Arun-感谢您的回答。为了澄清,我将在“testMap”中存储“ArrayList”或“HashMap”之类的对象(在您的示例中),在控制器之间共享。这是正确的吗?我没有收到你的来信,但是,你的解释很有意义。--不幸的是,我必须等待一段时间才能实现/测试。但是,我不想让你挂断。--无论如何,再次感谢你的帮助Arun。刚刚检查过,现在看到了你的评论。我已经编辑了答案以发送MyPojo[]我还没有测试这段代码,所以你可能会出错。你好,阿伦-谢谢你的回答。为了澄清一下,我会在“testMap”中存储像“ArrayList”或“HashMap”这样的对象(在你的示例中),在控制器之间共享。这是正确的吗?我没有收到你的来信,但是,你的解释很有意义。--不幸的是,我必须等待一段时间才能实现/测试。但是,我不想让你挂断。--无论如何,再次感谢你的帮助Arun。刚刚检查过,现在看到了你的评论。我已经编辑了答案以发送MyPojo[]我还没有测试这段代码,所以你可能会出错。