Java 是否可以利用ArrayList作为会话范围的组件—ModelAttribute—而不是创建pojo?
是否可以利用ArrayList或HashMap作为“会话范围的组件”(即ModelAttribute对象),而不是创建pojo 如果可能的话,我想创建一个会话范围的modelattribute,例如,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
“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[]我还没有测试这段代码,所以你可能会出错。