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