访问存储在HttpSession中的实体的相关实体

时间:2013-06-04 09:31:14

标签: jpa struts2

我有一个图片上传/存储应用程序,其中我有一个具有多个相关图像的用户实体(List<Image> images使用OneToMany关系)。我正在使用 Home.jsp

中的struts iterator标记在会话中迭代用户的图像
<s:iterator value="#session['user'].images" status="itStatus">
<s:property value="imageid"/>
<s:property value="name"/>
<s:url action="GetImageAction" var="imgUrl">
<s:param name="imageId" value="imageid"></s:param>
</s:url>  
<li>
<img src="<s:property value="#imgUrl"/>"/>
</li>
</s:iterator>

上传表单在同一页面上,因此当用户登录时,他可以看到他已经上传的图像&amp;也可以上传新图片。

这是我的问题。上传新图像时,同一页面会刷新以显示其图像,但最近上传的图像不会显示(显示为已损坏)但我能够看到所有以前上传的图像。这是因为imageId的{​​{1}}字段在这种情况下具有值Image而不是正确的ID。 0操作使用参数GetImageAction

设置图像的输入流

以下是imageId类:

Image

现在我猜这是因为迭代的新@Entity(name="Images") public class Image implements Serializable { private long imageid; private String name; private byte[] image; private static final long serialVersionUID = 1L; public Image() { super(); } public Image(String name, byte[] image) { super(); this.name = name; this.image = image; } @Id @GeneratedValue @Column(name="Id") public long getImageid() { return this.imageid; } public void setImageid(long id) { this.imageid = id; } ... } 对象具有默认的长值Image而不是生成的Id(我能够访问其他字段的值,如{{1} })。为什么是这样?由于图像在结果显示时已经存在,因此不应该正确检索Id值吗?我在这里做错了什么?

请帮忙。我觉得我可能会遗漏一些简单的东西,但它不会得到解决。

编辑: 0

name

0 个答案:

没有答案