action:
public class NetWorkAction extends ActionSupport {
public String selectValue;
public String getSelectValue() {
return selectValue;
} public void setSelectValue(String selectValue) {
this.selectValue = selectValue;
}
//其它代码省略
}1.jsp:
<table>
<tr>
<td><s:property value="selectValue"></s:property></td>//能显示值,正常
</tr>
<tr>
<td><iframe src="2.jsp" /></td>//能正常引入这个2.jsp
</tr>
</table>2.jsp:
<s:property value="selectValue"></s:property>//2.jsp里的这句就得不到值,啥也不显示执行完action,打开1.jsp页面,里面能得到selectValue这个值,程序走到这一切正常
但是iframe里的2.jsp,里面就得不到,怎么回事呢?我需要得到selectValue,要怎么实现?

解决方案 »

  1.   

    struts2的action所用的类变量+getter/setter的方法相当于request的getParameter/setParameter。
    这里iframe里的src等同于action请求结束后得到1.jsp后,再次发送请求得到2.jsp,是两次请求,request里的东西当然没了。
      

  2.   

    放session里就是个最简单的实现方法。
      

  3.   

    有以下几种实现方式:
    1.在1.jsp里面获取这个值然后传递到2.jsp里面(可以通过两种方式都行)
    2.把值放在全局变量里面 比如说session  不过用完后 记得清掉
      

  4.   

     <td><iframe src="2.jsp" /></td>//能正常引入这个2.jsp这里改为在使用参数的形式将selectValue,赋值给2.jsp
      

  5.   

    1.jsp<table>
        <tr>
            <td><s:property value="selectValue"></s:property></td>//能显示值,正常
        </tr>
        <tr>
            <td><s:include value="2.jsp">
                   <s:param name="va"><s:property value="selectValue"></s:param>
                </s:include>
            </td>
        </tr>
    </table>2.jsp
    值显示:${param.va}
      

  6.   

    超出範圍了,可以再跳到2.jsp中傳值啊!