我想做一个像百度一样:如点击网页,就查询“网页”这一个表。点击新闻,就查“新闻”这一个表。(注:在这里我把网页和新闻各看成各的单独的表)!现在我把页面做完了,后台的查询也写完了,点击那个如百度样的文本框旁的按钮也可以实现下面对表的查询,但是它实现的是查询整个表,不是表中的某个字段,比如我想查邮件表中的收件人,他就查询不出来,出来的是整个数据!我碰到的问题是,我怎么知道那个文本框里查询的哪个表的哪个字段呢?不说多了,上个图吧!有图有真相,才清晰!java难题解答谢谢

解决方案 »

  1.   

    把你那--网页--知道--贴吧的类型传到后台,不同类型调用不同实现类
    或者直接在js中判断调用不同action方法
      

  2.   

    1、采用多个Action去操控,在js动态变化链接。
    2、根据用户选中的类别去判断你所要查询表的标识。传到后台后,通过标识判断所要查询的表
      

  3.   

    表是可以查询到了!如点击IP信息,IP信息字体就会变颜色!说明文本框里查询的是IP信息表!表格控件也一样,其他的也是的!现在问题是点击按钮,他出来整个表,而不是我要查询的结果!我要文本框里要查询表中的某个字段!比如我要到文本框里搜入:曼联!下面就会输出相对应表里有曼联这个字段相关联的结果!
      

  4.   

    输出的不是你想要的结果,而是整个表。这说明你的sql语句可能出现了问题!!
      

  5.   

    改变一下思路,不要用一种请求处理所有的查询不同的查询发不同的请求, 服务端用不同的Action处理(如果用的是struts2的话)
      

  6.   

    后台查询如果在servlet中的话
    可以判断输入的参数来动态拼接SQL语句
      

  7.   

    我说下我的个人想法
    就是你可以在下面放几个radio。比如新闻。网页。这个状态来判断执行那个表的查询点查询的时候获取这个radio的值然后拼接传到后台去查询就可以了。这样查询的时候也要考虑到你的js能力了。可以尝试一下。 
      

  8.   

    获取前面标签的text值,然后根据这个text值条件查询不行么?比如收件人标签的ID设置为aa_1,后面跟着的文本框的ID设置为bb_1。
      

  9.   

    1.百度是不同好几个网页做的分类 tieba.baidu.com  zhidao.baidu.com2.字段的问题用 from biao where fajianren like '%?%' or shoujianren like '%?%'
    or biaoti like '%?%'
      

  10.   

    我觉得既然各自的表都可以查到,主要是里面的字段查不到,问题一:sql语句没写好,二:加标识符来判断文本框应用查询哪个!你们认为呢?
      

  11.   

    我也用了几个网页,效果出来了,只是查询不到!下面我的sql语句:
    String sql = "from Emailinfo hs where 1=1";
    if (in != null) {
    if (in.getEmail() != null && !in.getEmail().equals("")
    || in.getSubject() != null && !in.getSubject().equals("")
    || in.getSendermail() != null && !in.getEmail().equals("")
    || in.getEmailcontent() != null && !in.getEmailcontent().equals("")) {
    sql += "and hs.email like '%" + in.getEmail() + "%'"
    + "and hs.subject like'%" + in.getSubject() + "%'"
    + "and hs.sendermail like'%" + in.getSendermail() + "%'"
    + "and hs.emailcontent like'%" + in.getEmailcontent() + "%'";
    }
    原理跟你差不多,只是可能性能不是很好!
      

  12.   

    解释一下16楼的
    如果 getEmail 不为空,其余全空,那么
    sql="*** and email like '%***%' and subject like '%%' and sendermail like '%%' ****"
    这样的话,我没运行过,反正感觉是不顺服应该分开来写:
    if (in.getEmail() != null && !in.getEmail().equals("")){
    sql += "and hs.email like '%" + in.getEmail() + "%'"
    }
    if(in.getSubject() != null && !in.getSubject().equals("")){
    sql += "and hs.subject like'%" + in.getSubject() + "%'"
    }
    ....这样你运行下看看
      

  13.   

    这个判断啊,在Action中就能实现,前段用js判断,别死脑筋,想办法记录是哪个文本框代表哪个条件就行,一个文本框对应一个隐藏域,隐藏域的值写对应的哪个表,显示出来的显示要查的字段条件值,把文本框和他对应的值都传过去了,这不就解决了....
      

  14.   

    <input type="text" id="id" value="查询关键字"/>
    <input type="hidden" id="id2" value="表明"/>
    这两个是一组,就解决问题了,一起传到action中
      

  15.   

    这就是后台拼写SQL的问题啊,保证参数都正确传到后台就可以了,多表联合查询
      

  16.   

    我没有用struts,我只用了hibernate的hql查询,文本框可以判断我查询的哪个表,单没有实现里面对某个字段的查询!