因为我接触J2EE的架构模式不是很久,所以我也不知道该把帖子发到哪里,要发错地方了大家见谅啊。我没有使用框架,就是JSP+Servlet+Hibernate开发。流程是这样的: 我先从JSP请求查询所有Person类的信息(Person类已经用Hibernate和MySQL映射了)
               请求到达Servlet,Servelt调用JavaBean程序去查询(函数返回一个person[])
               Servelet 把person[] 交换给Jsp去显示我的问题是 Jsp得到了那个person[] 怎么能按次序都输出的,因为不想出现代码,所以想采用JSTL 不过里面的foreach 不能操作javabean
          还有就是,我想问一下,我现在这种流程是正确的MVC设计思路么?谢谢。

解决方案 »

  1.   

    虽然不能操作javabean,但是你可以操作request,session啊,把person[]放入其中不就OK了吗?jstl也能操作request和session
    另外,你说 Servelt调用JavaBean程序去查询,这里有问题,javaBean就是一个封装前台展示数据的普通java类,而不应该包含任何的查询之类的业务逻辑
    所以你这种方式只能说是80%的MVC设计思路,加油吧
      

  2.   

    request.setAttribute("person",person);
    <c:forEach items="${requestScope.person}" ... >
      

  3.   


    我用的就是这种方法,不过person是一个bean对象,而foreach又不能操作bena对象组,也就是person[],所以就无法取得其长度,所以也就是紧跟着不能执行foreach了。2楼的话我还是有些不明白,比如我这种情况 应该用什么方式查询数据库呢,因为再看jsf框架。他里面的JavaBean好像是查询的,好像是啊 因为最近看的真是一头雾水。2楼的:另外,你说 Servelt调用JavaBean程序去查询,这里有问题,javaBean就是一个封装前台展示数据的普通java类,而不应该包含任何的查询之类的业务逻辑 这句话不是很明白。就是应该怎么访问底层的数据库呢?还有就是我那个问题 怎么解决呢?万分感谢。
      

  4.   

    我记得是可以用的如果不行,就用request.setAttribute("person",Arrays.asList(person));一般数据库取出的都是保存成arraylist,用对象组长度不好定另外, yibunengjing 的意思是,
    查询条件封装成一个javabean,得到的结果对象用的是另外的javabean
    而执行sql语句应该在其他的class