代替值(我认为它是select
标签的字段值,即您没有澄清的问题),您有一个原始类型的属性值,int
或者long
未初始化的属性值,因此包含0
值。在 Struts 中,您按名称映射 JSP 字段,如果您没有指定value
属性来预选默认值,则该值将按name
属性检索。属性的值name
是一个 OGNL 表达式empType_em_ty_id
,它在值堆栈中求值,并返回一个属性值。这个值不是显示给你的,而是当你设置change
的值并在你表单option
时检索到的。submit
通常为select
tag 需要两个操作属性:一个用于值,另一个用于选项列表。例如
private Integer empType_em_ty_id;
private Map<Integer,String> typeMap = new HashMap<>();
//getters and setters
@Override
public String execute() throws Exception {
...
PreparedStatement ps = con.prepareStatement("select emp_ty_name, em_ty_id from emptype");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
typeMap.put(
rs.getInt("em_ty_id"),
rs.getString("emp_ty_name")
);
}
//initializing value
empType_em_ty_id = typeMap.keySet().iterator().next();
return SUCCESS;
}
JSP
<s:select label="Employee Type" list="typeMap" name="empType_em_ty_id" />
关于选定值:用于保存从另一个对象列表中选择的值的对象属性。所选对象的键应该是所选值的对象的外键。在我的示例中,我只是从同一个集合中获取了一个值,而不是从另一个对象中获取值,仅用于演示目的。