把判断写在外面,如果数据库里是男  就写
<c:if 如果数据库里是男>
<select name="sex" id="sex" >  
   <option value="男" selected > 男 </option >
   <option value="女"> 女 </option >  
</select >
</c:if>
<c:if 如果数据库里是女>
<select name="sex" id="sex" >  
   <option value="男"> 男 </option >
   <option value="女" selected > 女 </option >  
</select >
</c:if>要么在js里写. 同样 用一个变量接收bean sex的值,再判断,指定哪个选中.

解决方案 »

  1.   

    我自己用<logic:equal>实现了,可是我觉得这样效率不高,每一个都要判断一下,有没有更简洁的办法?
      

  2.   

    试下这个标签
    define 
    <bean:define id="s" name="sex" type="java.lang.String"></bean:define>
      <select name="sex">
        <option value="0" <%=(s.equals("男")?"selected":"")%>>男</option>
        <option value="1" <%=(s.equals("女")?"selected":"")%>>女</option>
      </select>
      

  3.   

    1,   改用radio標簽,因為radio標簽和check標簽有點特殊,
      如果從數據庫中取出的值為1,在頁面上它們就會自動顯示為選中。
    2,在JSP加載時 就循環得到取出來的sex值,用JS判斷是男還是女,再把值賦給bean的sex屬性。這樣做的原因是:在Jsp加載時一次性把sex值改變、判斷,效率高。因為代碼的連貫性,頁面不變性。如果在構造頁面時,動態改變值,編譯JSP將很慢。加油!祝你成功!
      

  4.   

    试试:
    <html:select name="sex" property="sex">
        <html:option value="男">男</html:option>
        <html:option value="女">女</html:option>
    </html:select>
      

  5.   

    更正一上,<%=(s.equals("男")?"selected":"")% >处应该和value="0"下的值一样,即action传过来的值!