<select id="tagName" name="tagName" onchange="selOwner(this)" class="textinput2" style="width:90%;" nullable="no" chname="姓名">
            <option value="<%=obj.getName() %>"><%=obj.getName() %></option>
            <%
            String dept2 = duty.getDuty();
         String[] d2 = dept2.split(",");
         YuangObj objects = (YuangObj)request.getAttribute("yuangObj");
            for (int i=0; i<d2.length; i++){
if(null != objects){
if(objects.getName().equals(d2[i])){
 out.println("<option value='" + d2[i] + "' selected='selected'>" + d2[i] + "</option>");
}else{
out.println("<option value='" + d2[i] + "'>" + d2[i] + "</option>");
}
}else{
out.println("<option value='" + d2[i] + "'>" + d2[i] + "</option>");
}
}
if(null != objects){
            %>
        </select>
从数据库读取的值,这个是编辑功能。从显示页面将姓名加载到这个下拉框中。
怎么让他不出现重复的2个姓名 并且能加载到下拉框中

解决方案 »

  1.   

    数据库加distinct来取唯一值,这种功能,要放到数据库处理
      

  2.   

    你数据库中查询时候处理啊!然后将值存放到集合中在放到select中!
      

  3.   

    你的下拉框取值的代码需要加一个参数 传入用户ID
    当参数为空证明是添加 全查
    当在编辑页面传入用户ID 查询出 != userID的其他数据
      

  4.   


    String dept2 = duty.getDuty();
    String[] d2 = dept2.split(",");
    YuangObj objects = (YuangObj)request.getAttribute("yuangObj");
    for (int i=0; i<d2.length; i++){
    if(null != objects){
    if(objects.getName().equals(d2[i])){
    out.println("<option value='" + d2[i] + "' selected='selected'>" + d2[i] + "</option>");
    continue;
    }else{
    out.println("<option value='" + d2[i] + "'>" + d2[i] + "</option>");
    }
    }else{
    out.println("<option value='" + d2[i] + "'>" + d2[i] + "</option>");
    }
    }
      

  5.   

    out.println("<option value='" + d2[i] + "' selected='selected'>" + d2[i] + "</option>");//在这名后边加一
    continue;
      

  6.   

    不好意思。
    <option value="<%=obj.getName() %>"><%=obj.getName() %></option>这个obj是哪来的?
      

  7.   

    是不是下拉框中出现两个obj.getName() 。?如果是你就在
    for (int i=0; i<d2.length; i++){
     if(obj.getName().equals(d2[i])){
    continue;
    }
    后面还是你原来写的。。
    }
      

  8.   

    不行 报错
    Unreachable code!
      

  9.   

    查库的时候用distinct关键字
    或者是你的数据库不够3NF
      

  10.   

    看了下你的代码 发现有几个问题:
    1、
    if(null != objects)
    这个可以放到for外面;2、if(objects.getName().equals(d2[i])) 一个select如果没有设置其他可以多选 的话,一般就只有一个可以被
    选中,可以加个boolean标识;去重复的方法:
    1、distinct 数据库处理;
    2、在for的时候 加个判断 ;
      

  11.   

    放到list之前去重复啊,不会这个都不会吧
      

  12.   

    直接从数据库查的时候去掉重复值就可以了啊,用distinct
      

  13.   

    你是在编辑用户信息的时候 跳转到用户信息页面的时候默认 选择前一页用户选中的NAME 是不是 用Jqury
    代码如下 
    <select id="tagName" name="tagName" onchange="selOwner(this)" class="textinput2" style="width:90%;" nullable="no" chname="姓名">
    $(function(){
    $("#tagName").html("");
    for(var i = 0;i<<%=d2.length>,i++)
    $("#tagName").append("<option value='" + <%=d2[i]> + "' selected='selected'>" + <%=d2[i]> + "</option>")})
      

  14.   

    <select id="tagName" name="tagName" onchange="selOwner(this)" class="textinput2" style="width:90%;" nullable="no" chname="姓名">
    $(function(){
    $("#tagName").html("");
    for(var i = 0;i<<%=d2.length>,i++)
    $("#tagName").append("<option value='" + <%=d2[i]> + "' selected='selected'>" + <%=d2[i]> + "</option>")
    if(if(objects.getName().equals(<%=d2[i]>)){$("#tagName").val(<%=d2[i]>);
    }
    })
    非常简单就这样  不知道 你 会不会JQURY 然后你这么多代码 都写在JSP里面 是在不可以 直接用Strust2 <S:select name="" listkey="" listValue=""/> 多好 还用在页面里面写JAVA 实在 不可取