<td align="right" width="30%">收件人:</td><td  align="left">
<select name="receiver">
<c:forEach var="list" items="${sessionScope.userlist}">
<option value="${list.nickname}">${list.nickname}</option>
</c:forEach>
</select>
</td>   本人由于项目的需要显示页面时必须要用nickname昵称来显示,可是我的dao里查询用户信息时只有通过id查询,本人试了在select加一个隐藏option:<option value="${list.id}" style="display:none"></option>,可是这样,实际id不会被选中,
试问用什么方法能在选择nickname时也将相应的id传进action里,而且保证页面选择显示只有昵称一样,跪求高手解答!

解决方案 »

  1.   

    为什么不用s标签呢?
    <SELECT id="interest" name="interest"  style="width: 235px"> 
              <s:iterator value="list" id="i">
    <option value="<s:property value='#i.id'/>"><s:property value="#i.name"/></option>
    </s:iterator>
    </SELECT>
      

  2.   

    <option value="表单提交的内容">显示的内容</option>
    option的value属性是表单提交的数据,innerHTML是显示的内容,这两个可以不相同
    也就是说你可以把value设为id,option标签里面的内容设为要显示的nickname
    如:
    <c:forEach var="list" items="${sessionScope.userlist}">
    <option value="${list.id}">${list.nickname}</option>
    </c:forEach>
      

  3.   

    首先 你要知道 select标签选中之后 传递的值是option标签的 value,所以你写的
    <option value="${list.nickname}">${list.nickname}</option>
    传递的是${list.nickname},你要在action中去id,那就传递id啊 。
    这样子~~<option value="${list.id}">${list.nickname}</option>