jsp中有多个<html:text property="username">
          <html:text property="password">等等
提供查询条件,我如何在ActionForm中判断其是否为空,不为空的组成sql,这个不能用validate做了吧,在ActionForm中单弄一个方法?这个sql字符串又如何传到业务层合理呢?谢谢XD们解答一下

解决方案 »

  1.   


    String sql1 = "";
                String sql2 = "";
                                
            
            
                if(!username.equals("")){
                    
                    sql1 = "and username='"+userID+"'";
                    
                }
                if(!password.equals("")){
                    
                    sql2 = " and password='"+password+"'";
                    
                    
                }
                
                String sql = "select * from 表名 where 1=1"+sql1+sql2;
    拼字符串就可以了~~也可以用StringBuffer
    对以上sql进行操作就可以了~~~~不知道你什么需求~~一般很少把密码当查询条件的~~~你在业务层写个方法把String sql当参数,然后在你想用的地方调用这个方法~~
      

  2.   


    String sql1 = "";
                String sql2 = "";
                                
            
            
                if(!username.equals("")){
                    
                    sql1 = "and username='"+username+"'";
                    
                }
                if(!password.equals("")){
                    
                    sql2 = " and password='"+password+"'";
                    
                    
                }
                
                String sql = "select * from 表名 where 1=1"+sql1+sql2;userID改为username,其实你从ActionForm中得到的值~~~
      

  3.   

    validate
    这个是验证的 不能 在这里做就做到validate()方法里面 你可以 在你的ActionForm中 声明一个 成员String sql; 
    然后 在你的业务逻辑里面 可以通过Form来获取到了
      

  4.   

    呵呵,我没写清楚,我写的validate就是validate()方法。
    validate()方法的返回值类型不是ActionErrors吗?
    我想的是在Form中单写一个方法,没有这个必要吗?还是不用管这个返回值,在validate()里面操作完字符串sql了就可以了?
      

  5.   

    似乎这个sql组成的有些问题,我自己改了。
    另外4楼的问题,没人答了啊。
    再者,我有个新的想法,这个sql好像在视图层的Bean中就组成了,那我后面的VO,PO还有什么作用?不做了?这样是不是失去使用hibernate的意义,会不会造成系统不平衡,效率有没有问题?