我想 每个关键字都在title 和content 查询一次  比如 “你好 不好 很好 非常不好”   把这些关键字都在title 和content 查询一边  在前台给显示出来 
如何在后台循环查询?

解决方案 »

  1.   

    // 搜索
        public String onListSearch()
        {
        
         String []str2 =new String[200];
         int j=0;
         System.out.println("1111111111"+str);
            String[] str1=str.split(" ");
            str="";
            for(int i=0;i<str1.length;i++)
    {
            
    if(!str1[i].equals(""))
    {
    str2[j]=str1[i];
    j++;
    str+=str1[i]+(" ");

    }
    }
              if(str2.length==1)
            {
              title=str2[0];
              listSearch=getArticleBs().getQueryOne(title); 
            }
            else
            {
               title=str2[0];
               content=str2[1];
               listSearch=getArticleBs().getAllQuery(title,content);
              
            }
            
         return "search";
        }这个是action 里的方法 
      

  2.   

    先把多个关键字存储到list中,再循环遍历其中的关键字不就可以啦
      

  3.   

    多次查询组装list,返回map或者一次组装sql执行,返回list
      

  4.   

     没用过 Hibernate 你试下,不对你再找高手吧
    public List <?> getAllQuery(Map<String,Object> map)
     { Session s =
     getHibernateTemplate().getSessionFactory().openSession();
     Criteria criteria =s.createCriteria(Article.class);
    Iterator iterator=map.keySet().iterator();
    Object o=null;
    while(iterator.hasNext()){

    o=o+","+Expression.like(iterator.next().toString(),"%"+map.get(iterator.next().toString())+"%");

     }

     criteria.add(Expression.or(o));
     return criteria.list();
     }