struts2 的session 问题

normalHeFei 2014-11-12 10:13:03
// 上传图片,并返回图片名
public String upload() throws Exception {
// 实现上传
// 将成功上传的图片名 放在session中 ,用于前台表单显示,并统一提交
String imageName = Common.upload(getFile(), getFileFileName());
List<String> imageNames = (List<String>) session.get("imageNames");
if (imageNames == null) {
imageNames = new ArrayList<>();
imageNames.add(imageName);
session.put("imageNames", imageNames);
} else {
imageNames.add(imageName);
session.put("imageNames", imageNames);
}
System.out.println("session 中imageNames:"+ Common.getSession().get("imageNames"));
//有值,Common.getSession() 就是 ActionContext.getContext().geSession();
return upload;
}

public String manage() throws Exception {
System.out.println(Common.getSession().get("imageNames"));//null
return upload;
}


如上,两个方法都是同一个action中的方法,(action 也都实现了SessionAware接口。)upload方法上传图片,因为前台使用的是swfupload插件,调试观察到,上传多张图片时,一共有几张图片,就执行几遍upload方法,为了便于表单的提交,我的想法是,当图片都上传成功后,将图片名都放在session中,然后将 这些图片名和表单中的其他元素统一再提交。现在的问题是: upload中session 中imageNames是有值的,可是页面却取不到 (页面是这样写的: <s:property value="#session.imageNames" /> )通过<s:debug/> 标签看,session也是空。更奇怪的是: 同一个action中的manage方法中 也取不到session中的imageNames。
...全文
128 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
normalHeFei 2014-11-12
  • 打赏
  • 举报
回复
引用 1 楼 wuhuiyishi 的回复:
你需要在Action属性中加入文件的对象以及对象的名字,如: private File fileUpload; private String fileUploadFileName; 注意文件名一定是要file对象的属性名+xxx
你说的这是 struts上传图片所要求的一些东西,现在图片能够上传成功,图片名也能获取到,,主要是上面的这个疑问。
normalHeFei 2014-11-12
  • 打赏
  • 举报
回复
你说的这是 struts上传图片所要求的一些东西,现在图片能够上传成功,图片名也能获取到,,主要是上面的这个疑问。
wuhuiyishi 2014-11-12
  • 打赏
  • 举报
回复
你需要在Action属性中加入文件的对象以及对象的名字,如: private File fileUpload; private String fileUploadFileName; 注意文件名一定是要file对象的属性名+xxx

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧