当前位置:编程学习 > JAVA >>

在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值存的是最后一次存入的值 --------------------编程问答--------------------
引用 2 楼 Lost_G 的回复:
session.setAttribute("变量名","值"); 变量名相同 session值存的是最后一次存入的值

但是每次session.setAttribute完,我就调用
<td ><img src="getimage.action" width=300 height=300 align="center"/></td>  
中的action方法喔,这里每一次的session不是应该不一样的吗?     
--------------------编程问答-------------------- 你的session最终取的值是最后你个session   你自己好好测测 就知道了 --------------------编程问答--------------------
引用 1 楼 fangmingshijie 的回复:
你的session是最后一个session,当然了。

+1 --------------------编程问答-------------------- 你的session是最后一个session,当然了。
+1 --------------------编程问答--------------------
引用 4 楼 Lost_G 的回复:
你的session最终取的值是最后你个session   你自己好好测测 就知道了

额,我现在想要每次都不同一个值,应该怎么办? --------------------编程问答--------------------
引用 7 楼 a6675626purs 的回复:
引用 4 楼 Lost_G 的回复:你的session最终取的值是最后你个session   你自己好好测测 就知道了
额,我现在想要每次都不同一个值,应该怎么办?




是不是可以把名称存成这个名称+循环序列号呢? --------------------编程问答--------------------
引用 8 楼 gamestart104 的回复:
引用 7 楼 a6675626purs 的回复:
引用 4 楼 Lost_G 的回复:你的session最终取的值是最后你个session   你自己好好测测 就知道了
额,我现在想要每次都不同一个值,应该怎么办?



是不是可以把名称存成这个名称+循环序列号呢?

getimage方法里面不能循环输出图片。 --------------------编程问答-------------------- 你每次都将sesion的值存在tpvalue中每循环一次他会把上一次的值覆盖掉,
直接输出#session.goodstablelist到<img>的src中没用吗? --------------------编程问答--------------------
引用 10 楼 chen_pingyun 的回复:
你每次都将sesion的值存在tpvalue中每循环一次他会把上一次的值覆盖掉,
直接输出#session.goodstablelist到<img>的src中没用吗?

我发现整个循环中,action的方法只执行了一次,所以它的值就是覆盖到最后的那个值。
但是为什么action的方法只执行了一次呢? --------------------编程问答--------------------  你每次设置的变量名都一样。每次重复都会替换前一个变量的值,最后肯定是最后一个了 --------------------编程问答--------------------
引用 11 楼 a6675626purs 的回复:
引用 10 楼 chen_pingyun 的回复:你每次都将sesion的值存在tpvalue中每循环一次他会把上一次的值覆盖掉,
直接输出#session.goodstablelist到<img>的src中没用吗?
我发现整个循环中,action的方法只执行了一次,所以它的值就是覆盖到最后的那个值。
但是为什么action的方法只执行了一次呢?
应该走了三次啊,它页面循环了三次<img>就调用了三次action --------------------编程问答--------------------
引用 13 楼 chen_pingyun 的回复:
引用 11 楼 a6675626purs 的回复:
引用 10 楼 chen_pingyun 的回复:你每次都将sesion的值存在tpvalue中每循环一次他会把上一次的值覆盖掉,
直接输出#session.goodstablelist到<img>的src中没用吗?
我发现整个循环中,action的方法只执行了一次,所以它的值就是覆盖到最后的那个值。
但是为什么action的方法只执行了……

我在java端写每次执行就输出一次图片的二进制值,但是只有一个值显示在控制台。。。 --------------------编程问答--------------------
引用 1 楼 fangmingshijie 的回复:
你的session是最后一个session,当然了。

补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,