<select name="item">
    <c:forEach items="${item}" var="item"> <option value="${item}">${item.name} </option>
    </c:forEach>
</select>
上面是我在jsp的一个添加表单中的一个select,在action中我用ActionForm获取值的时候,获取的是1、2、,我想要他的value,怎么获取?
如:MainForm mf=(MainForm)form;
    String item=mf.getItem();
这里取到的是数字,怎么样才能得到选择的内容(即${item.name})呢?

解决方案 »

  1.   

    html:select 的 name属性设置成form中的某字段,该字段的值是select状态的值
      

  2.   

    首先我分析下你的需求,你的关注点是不对的。
    1.一般做程序 select 没有取你所谓的 item.name的, 正常思路都是取得 是否被选择的状态值,即你所说的1,2。
    2.你选择的数值跟实际name的对应关系应该体现在你的数据库中,或是你的logic的判断中,不应该在页面上把这个name提交。
    3.如果你非要提交 也可以通过隐藏域提交。
      

  3.   

    在form中增加一个字段,用来存储select取得的值
    <html:select name="userMgtAccountForm" property="bankFlag">
                      <html:optionsCollection property="bankFlagTypeList" />
                    </html:select>
    bankFlagTypeList中选中的值存到userMgtAccountForm的bankFlag中了...你滴明白?
      

  4.   

    我的<option>中的值 存在单独的一个表中,这方便我后期的更新,通过foreach也是列出来而已,在提交表单数据的时候,action中通过actionForm取到的,不是name的值,我的意思是如何取到选取的name的值
      

  5.   


    笔误,应该是property... sorry
      

  6.   

    你里面的属性我不清楚什么意思,能将我上面的转换过来吗,${list}是从数据库中取到的数据链表,item是actionForm中对应jsp的属性,对应你的select怎么填进去
      

  7.   

    http://ahzhangziqiang.blog.163.com/blog/static/441343162010284110210/问题已经解决,感谢上面几位的帮忙,虽然没能用到