在jsp中保存的值,到java端出现问题了!
在jsp端使用循环不断输出值,存放到session中<table border="1" align="center">
<s:iterator value="#session.goodstablelist">
<tr>
<s:set name="tpvalue" value="tp" scope="session"></s:set>
<td ><img src="getimage.action" width=300 height=300 align="center"/></td>
</tr>
<% out.print(session.getAttribute("tpvalue")); %>
</s:iterator>
</table>
再在java端中使用image方法显示图片
public String getImage()
{
HttpSession session = request.getSession();
HttpServletRequest request=ServletActionContext.getRequest();
byte[] zp=(byte[])session.getAttribute("tpvalue");
System.out.println(zp);
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("image/*");
//得到输出流
try {
ServletOutputStream ot = response.getOutputStream();
if(zp!=null&&zp.length>0){
for(int i=0;i<zp.length;i++){
ot.write(zp[i]);
}
ot.flush();
ot.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return NONE;
}
问题是循环了3次,在jsp中显示3个tp的值是不同的,但传到java端中,3个session值都等于最后那个tp值,为什么?? session iterator jsp --------------------编程问答-------------------- 你的session是最后一个session,当然了。 --------------------编程问答-------------------- session.setAttribute("变量名","值"); 变量名相同 session值存的是最后一次存入的值 --------------------编程问答--------------------
但是每次session.setAttribute完,我就调用
<td ><img src="getimage.action" width=300 height=300 align="center"/></td>
中的action方法喔,这里每一次的session不是应该不一样的吗?
--------------------编程问答-------------------- 你的session最终取的值是最后你个session 你自己好好测测 就知道了 --------------------编程问答--------------------
+1 --------------------编程问答-------------------- 你的session是最后一个session,当然了。
+1 --------------------编程问答--------------------
额,我现在想要每次都不同一个值,应该怎么办? --------------------编程问答--------------------
是不是可以把名称存成这个名称+循环序列号呢? --------------------编程问答--------------------
getimage方法里面不能循环输出图片。 --------------------编程问答-------------------- 你每次都将sesion的值存在tpvalue中每循环一次他会把上一次的值覆盖掉,
直接输出#session.goodstablelist到<img>的src中没用吗? --------------------编程问答--------------------
我发现整个循环中,action的方法只执行了一次,所以它的值就是覆盖到最后的那个值。
但是为什么action的方法只执行了一次呢? --------------------编程问答-------------------- 你每次设置的变量名都一样。每次重复都会替换前一个变量的值,最后肯定是最后一个了 --------------------编程问答-------------------- 应该走了三次啊,它页面循环了三次<img>就调用了三次action --------------------编程问答--------------------
我在java端写每次执行就输出一次图片的二进制值,但是只有一个值显示在控制台。。。 --------------------编程问答--------------------
顶
补充:Java , Java EE