日期:2014-05-18  浏览次数:20767 次

list在下拉框中的问题?
我的功能是这样的:
在页面上有增加行的按钮,单击增加行后,增加的是下拉框,下拉框选择的是数据库里的内容;
我的实现代码如下:(我用的是struts2和hibenate3)
Service中代码(从SubSendInfoModel中取数据):
public List<SubSendInfoModel> getAllSub() {
String sql = "from SubSendInfoModel";
Session s =HibernateUtil.currentSession();
Transaction tx = s.beginTransaction();
Query q = s.createQuery(sql);
List<SubSendInfoModel> list = q.list();
tx.commit();
HibernateUtil.closeSession();
return list;
}
action中代码:
List<SubSendInfoModel> list = sis.getAllSub();
request.setAttribute("list",list);
页面(struts2标签):
增加行里没有实现下拉框可以选择数据库的数据,
<input name="Submit" type="button" class="lankuang" value="增加行"
onclick="addNewRow1()" onmouseover="buttonMouseOver(this)"
onmouseout="buttonMouseOut(this)">
相关的js代码:
 function addNewRow1() {
  var objMyTable = document.getElementById("userTable");
var rowindex = objMyTable.rows.length - 1;
var newRow = objMyTable.insertRow(rowindex);
var cellone = newRow.insertCell(0);
cellone.innerHTML = "<input type='checkbox' name='stringMultibox'/>";
var cellone = newRow.insertCell(1);
cellone.innerHTML= "<s:selectlist="#request.list"name="atmNumber"listKey="atmNumber"listValue="atmNumber"
headerKey="0"headerValue="--请选择--"></s:select>"; var cellone = newRow.insertCell(2);
cellone.innerHTML = "<input type='text' name='shipmentDate' class='text'/>";
var cellone = newRow.insertCell(3);
cellone.innerHTML = "<input type='text' name='remark' class='text' />";
}

这个可以显示数据库的内容:
<s:select list="#request.list" name="atmNumber"
listKey="atmNumber" listValue="atmNumber" headerKey="0"
headerValue="--请选择--"></s:select>编辑后运行没有显示出数据库中的数据,页面提示有脚本错误,我想可能是增加行识别不了struts2的标签,不知道用普通标签怎样实现?

------解决方案--------------------
靠靠靠靠靠靠

那个多行的问题是struts的SB标签的SB默认值导致的

<s:select list="#request.list" name="atmNumber" listKey="atmNumber" listValue="atmNumber" headerKey="0" headerValue="--请选择--"> </s:select>

增加个东西 theme="simple"

<s:select list="#request.list" name="atmNumber" listKey="atmNumber" listValue="atmNumber" headerKey="0" headerValue="--请选择--" theme="simple"> </s:select>