我也觉得struts不是很好,说实在很讨厌标签库!

解决方案 »

  1.   

    标签是很麻烦没有达到什么美工 coder分工的目的
      

  2.   

    今天看到有人写的hibernate 分页代码
    public PaginationSupport findPageByCriteria( 
    final DetachedCriteria detachedCriteria, final Order order, 
    final int pageSize, final int startIndex) { 
    return (PaginationSupport) getHibernateTemplate().execute( new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { 
    Criteria criteria = detachedCriteria.getExecutableCriteria(session); int totalCount = ((Integer) criteria.setProjection( 
    Projections.rowCount()).uniqueResult()) 
    .intValue(); 
    criteria.addOrder(order); 
    criteria.setProjection(null); List items = criteria.setFirstResult(startIndex) 
    .setMaxResults(pageSize).list(); 
    PaginationSupport ps = new PaginationSupport(items, 
    totalCount, pageSize, startIndex); 
    return ps; 

    }, true); 
    } 这是我以前用hibernate2的时候写的
      public List findByPage(CalPage page, String whereClause) {
        String queryString = "select t from "
            + this.clazz.getName()
            + " as t " + whereClause;    //Log.log(queryString);
        List result = null;
        try {
          openSession();
          Query q = session.createQuery(queryString);
          //由于实际取到的从下一位开始, 所以修正
          q.setFirstResult(page.getStart() - 1);
          q.setMaxResults(page.getRecords());
          result = q.list();看看那个高手写的 Criteria,我真想问一下高手,您头不晕吗? 何必呢 何苦呢
    我不拿代码叠罗汉就不是 OO 了?
      

  3.   

    public List findByPage
    String queryString = "select t from "
            + this.clazz.getName()
            + " as t " + whereClause;
    ---------------------------------
    如果我要查询另外的结果集,加入更多更复杂的条件,需要分页怎么办?再写一个方法?闻到代码重复的臭味了么.....
    whereClause字串也只有明确知道queryString的主体才能构造,这也违反了dao方法的原意:封装数据访问的细节。在你贴出的代码里面,findPageByCriteria应该是作为基类的一个通用方法,DetachedCriteria是可重用的,它交给调用者构建,保证了分页查询的灵活性。(不过我不喜欢hibernate的api出现在dao层以外,所以我更喜欢用map)
      

  4.   

    实用主义者,赫赫。struts毕竟是较早出现的mvc框架,落伍也是必然的。以后可能mvc框架主流就是ww(struts ti)和sm了。
    struts的tag可以说基本上没用,而且最受不了的就是太长了....写多了页面会乱七八糟。比如这个<bean:write name="bean" property="aa.bb.cc" >
    用jstl写就是${bean.aa.bb.cc},短多了....
    其实要说最适合和美工配合工作的还是用模版技术做视图较好,模版html文件进行可视化编辑容易很多。比如说velocity的
    #foreach ($item in $items) <tr><td>${item}</td></tr> #end
    在dreamveaver里面就会正常显示,用tag会乱的。