我现在是有一个用户表(user)其中属性有name,age,addrss,在一个jsp页面中有三个文本框的名称分别是name,age,address以及一个查询按钮。
当我单击查询按钮时,1.如果三个文本框里都没有输入。那么就查询所以用户信息。
2.如果三个中有一个,或多个文本框中有输入的值,那么就按照输入的值进行模糊查找。
我想在这问下各位高人,要达到代码精简,是不是用HashMap做会更好。如果用HashMap做的话,该如果做呢。希望各位高手指点。在这先说声谢谢。

解决方案 »

  1.   

    是在jsp里直接查询,还是传值到servlet再查?
    如果直接在jsp里查询,只能一个个取值后判断是否为空。
    如果用servlet,request.getParameterMap就会得到所有参数的MAP哦
      

  2.   

    我觉得看你的数据库用的是什么框架啊,我基本用的是ibaties,所以,页面传递参数的话就用的是HashMap,就是把你的参数放到一个map里面,然后将这个map传递到ibaties中去,在ibaties的sql中用map来接就可以了。你所说的代码精简是,我想就是封装你的页面参数,这样你所有的页面都用你封装好的参数来传递值。比如你页面上所有想传递到后台做处理的值都规定是param_名字,这样你在baseaction里去封装好这名字都放在一个map里面,这样你用的action都继承这个baseaction,然后想用什么参数就直接取就可以,非常的方便。
      

  3.   

    我们老师是改变sql语句来判断的,比如有两个文本框,userId,userName,如果userId这个文本框写入值就安照userId查询//前面获取userId,userNmae的值。sql="select * from user where 1=1" if(userId!=null && !user.eques("")){sql+="and where userId="+userId+"";}if(userName!=null && !userName.eques("")){sql+="and where userName="+userName+"";}
    我想问下各位,有没有更精简的代码
      

  4.   

    还是用MVC吧··要不然很乱的··
      

  5.   

    select * from user where (name=:name or name is null) and (age=:age or age is null) and (address =:address or address is null);
    看你说老师,就算了..要是我工作中这样写SQL要被技术经理骂死了.
      

  6.   

    ibatis与struts融合,求相关资料