日期:2014-05-19  浏览次数:20916 次

s:iterator遍历list并输出
customer 客户表,service 服务表
dealman被分配人 及客户经理manageName

public List getDealname() {
Session session=sessionFactory.getCurrentSession();
String hql="select distinct manageName from Customer";
Query query=session.createQuery(hql);
List list=query.list();
return list;
}

public String getDealman() throws Exception{
List list2=serviceBiz.getDealname();
ActionContext.getContext().getSession().put("list2",list2);
return "tofenpei";
}

 <select name="service.dealman" id="service.dealman">
<s:iterator value="#session.list2" var="customer">
<option value="<s:property value="manageName"/>">
<s:property value="manageName"/>
</option>
</s:iterator>
</select> 

为什么在页面上获得不到下拉列表的值

------解决方案--------------------
<s:property value="#customer.manageName"/>
------解决方案--------------------
<s:iterator value="#session.list2" id="customer">
<option value="<s:property value="#customer.manageName"/>">
<s:property value="#customer.manageName"/>
</option>
</s:iterator>

这样试试。
------解决方案--------------------
你先Deburg一下,看从数据库中有没有取到值,要是有的话就是jsp页面的问题了,可能是OGNL传值的问题,你把session换成其他的试试
------解决方案--------------------
楼主可以综合楼上所有人的观点整理出来三种解决方案。
1、debug看看是否list中有值;
2、使用完整的OGNL表达式;
3、使用struts标签
<select name="service.dealman" id="service.dealman">
<s:iterator value="session.list2" var="customer">
<option value="<s:property value="manageName"/>">
<s:property value="manageName"/>
</option>
</s:iterator>
</select>
------解决方案--------------------
同意6楼,我以来也是这么说的 ,要么就不要用 表达式拉,直接代码吧
------解决方案--------------------
这样看看
<s:iterator value="#list2" id="customer">
<option value="<s:property value="customer.manageName"/>">
<s:property value="#customer.manageName"/>
</option>
</s:iterator>
如果用debug就直接报错的话,建议看看是报什么错误


------解决方案--------------------
<s:iterator value="#list2" id="customer">
<option value="%{#customer.manageName}">
<s:property value="#customer.manageName"/>
</option>
</s:iterator>
试试
------解决方案--------------------
楼主 变量名customer取长了, 短点就好了,尽量4个字符以内,我没看源码,不知道why????