<select name="dellist">
<%
   String tempDelId="01";//tempDelId实为从DB中取到的某一个确定值 并不是固定的"01"
   ArrayList dellst = new ArrayList();
   dellst = (ArrayList)session.getAttribute("DelList");
   if (dellst!=null)
   {
   for(int i=0; i<dellst.size();i++)
   {
   SyskbnBean delskb = (SyskbnBean)dellst.get(i);
%>
<option value="<%=delskb.getDelListDelId()%>" 
   select="<%=tempDelId.equals(delskb.getDelListDelId())?selected%>"><%=delskb.getDelListDelNm()%>
</option>
<%
   }
   }
%>说明:有个编辑画面,上面除了一系列的label text框外还有个下拉框。且下拉框列表的值是从DB中取得的。
从DB取一条数据显示在画面上,其中一个值即为上面的tempDelId。也就是下拉框所有值中的一个。
我的问题是:怎样才能让tempDelId所对应的下拉框值被选中呢?
上面的红色部分写法是错误的。缺少“:xxx” 
下拉框显示时我做了判断,如果下拉框中的某个值等于tempDelId时,此条的select设为selected,
那么冒号后面该怎么写呢?这里面的if语句写法 我不熟悉。哪位有更好的写法请共享一下。谢谢!

解决方案 »

  1.   

    你那个问号是做什么的   我估计缺少“:xxx”这个问题就是系统识别成A?B:C了
    怎样才能让tempDelId所对应的下拉框值被选中呢? 你在<option>下边再加一个<option>不行吗
    <option value=" <%=tempDelId%>"> 
           <%=tempDelId%>
    </option> 
      

  2.   


    这样也会报错:selected cannot be resolved我改成:selected=" <%=tempDelId.equals(delskb.getDelListDelId())?true:false%>"> <%=delskb.getDelListDelNm()%> 
    不会报错。但是不管tempDelId是不是有变化,下拉框中的选中项总是tempDelId  郁闷啊~~~
      

  3.   

    selected=" <%=tempDelId.equals(delskb.getDelListDelId())?true:false%>"> 改成
    selected= <%=tempDelId.equals(delskb.getDelListDelId())?”selected“:""%>> 44看
      

  4.   

    改判断方式,如果判断相等,再写入selected=....
      

  5.   


    selected="<%if(tempDelId.equals(delskb.getDelListDelId())){out.println(true);}%> 
      

  6.   


    嗯,用这种思路然后再结合8楼yulu0214的if写法。最后终于搞定啦!感谢大家的帮助!
    最终写法是:
    <option value="<%=delskb.getDelListDelId()%>" 
        <%if(tempDelId.equals(delskb.getDelListDelId())){out.println("selected=true");}%>>
    <%=delskb.getDelListDelNm()%></option>