我正在使用Struts select标记从数据库中检索值,显示在JSP页面上的表单中,我使用以下代码将值存储在列表对象中
ps = con.prepareStatement("select emp_ty_name, em_ty_id from emptype");
set = ps.executeQuery();
while (set.next()) {
typeID.add(set.getInt("em_ty_id"));
typeName.add(set.getString("emp_ty_name"));
}
在JSP页面中,我正确显示了名称,但在其值处显示了0(零)
值
<s:select label="Employee Type" list="typeName" name="empType_em_ty_id" />
最佳答案
您需要使用具有两个属性的对象的列表,而不是两个单独的列表。
然后创建一个像
public class EmpType {
private Integer typeID;
private String typeName;
// getters and setters
}
在您的操作中声明它的列表,然后填充它:
private List<EmpType> empTypes = new ArrayList<EmpType>();
// getters and setters
public String execute(){
// stuff...
while (set.next()) {
EmpType et = new EmpType();
et.setTypeID(set.getInt("em_ty_id"));
et.setTypeName(set.getString("emp_ty_name"));
empTypes.add(et);
}
// stuff
return SUCCESS;
}
迭代对象并使用
listKey
和listValue
属性指定键和值:<s:select label = "Employee Type"
list = "empTypes"
listKey = "typeID"
listValue = "typeName"
name = "empType_em_ty_id" />