WEB开发时,通常会有一些页面,下拉框中需要填充内容,供用户选择。
而这些内容需要从后台数据库中查询取得。
以java web开发为例,有下面几种方法实现,大家来讨论一下,哪种方法好些,或者有没有更好的建议。
1.先将页面转向servlet,查询到内容后放到request中,再转到页面,页面再将request中的内容取出填充。
2.自定义标签,考虑到通用性,可以让标签支持sql语句,根据前台拼出的sql语句,后来查询,这样可以不用为每个填充需求都做一个标签。
3.ajax方式

解决方案 »

  1.   

    我先说一下自己的看法。
    第1种方法较早的时候常用,现在一般不用这种方式,为了填充个下拉框,比较麻烦。
    第2种方法最简单,写一下sql语句就可以了,但虽然简单,我也不喜欢这种方式,因为将业务逻辑和显示混在一起了。
    第3种方法应该是现在比较流行的,但针对不同的下拉框都要做ajsx调用,不如第二种方法简单。
    也想过将第2、3种方法进行一些改进,比如只传一个flag进去,无论是自定义标签,还是ajsx后台方法,都根据flag去判断
    取出要显示的内容。
    比如:
    flag=1: 用户信息
    flag=2: 机构信息
    flag=3: 角色信息
      

  2.   

    struts2的标签select标签就很好用,
      

  3.   

    俺一直也用的第一种方式 感觉struts2的标签支持的都挺方便
      

  4.   

    struts2的select标签是和第1种方式结合起来使用。
    但本意是想去一个jsp页面,却先到action转了一圈,想再简化一下
      

  5.   

    不推荐第二种方式,复用性不强,业务逻辑混乱。而且struts2已经有了select标签,不用自己再定义了。
    使用第一种方式结合select标签其实也不麻烦,后台的实现可以规划一下。比如所有的这种需求都转向一个统一的
    action,这个action再根据不同的需求有多个子类去实现。这样就不会显示很零乱。
    不过无论第一种方式还是第三种方式,建议不要把实现内容直接写在action或,ajax调用方法中。让各部分的实现分布在
    service中,action, ajax只做控制作用,否则造成职责混乱。
      

  6.   

    这个我给你一个合理的解决方案:
    首先确定列表中的内容是不是不变的,再者就是内容的量有多大1,小量不变的列表:加载页面时同步加载,存储方式可以选择POOL技术或者枚举(建议用后者,方便维护)
    2,小量与业务相关的不确定内容:使用ajax或者同步加载都可以,但如果数据获取方面耗时较多同步加载
       会降低用户体验,这时可以使用ajax,但内容肯定都是来自数据库了
    3,大量内容,不管是不变还是业务相关,都建议使用分页技术,当然可以使用弹出窗口选择,或者ajax
       浮动窗口,但是分页技术是必须的,至少上万条的内容的话IE很容易死掉的