你在jsp文件里定义自己的内嵌类ground?这样的写法真是闻所未闻。哈哈。
两个jsp文件被server转化为两个临时的class(A.java, B.java), 那么A.ground和B.ground是两个完全不同的class,当然不能转换。你编译下面的代码试试(原理和你的jsp是一样的):
//A.java
class A {
  public ground ag;
  public class ground {
    public String my = "ground";
    public ground() {}
  }
  public A() {
    ag = new ground();
    ag.my = "a ground";
  }
}
//B.java
class B {
  public A a;
  public ground bg;

  public class ground {
    public String my = "ground";
    public ground() {}
  }
  public B() {
    a.ag.my = "aaground";
    bg = (B.ground)a.ag;  //or bg = a.ag; 结果是一样的
  }
}
after编译:Cannot convert A.ground to B.ground.
正确的做法应该是在一个javabean里面定义ground.

解决方案 »

  1.   

    不要在JSP里写不是表达逻辑的东西。
      

  2.   

    用session能保存简单类型以外的对象吗,我从来没有成功过
      

  3.   

    用session可以保存任何extends Object的对象。
    我已经说过了,这个问题关键是定义class ground的地方错了!jsp页面里的任何代码最终会被嵌到一个临时的class里再编译,所以ground分别是两个class里的内嵌类,除了名字相同两者之间没有其他任何联系,不是相当于我在上面所提供的例子的错误吗?
      

  4.   

    在两个不同的jsp文件中分别定义类,虽然两个类的名称和实现细节都可以完全相同。
    但是实际上两者之间没有任何关系。仅仅名称相同而已。
      

  5.   

    我在使用session保存对象的时候,对象也是定义在been里面,可是接收下来却总是为空,这是为何,请指教