如何从Struts 2中的选定对象中获取对象属性
问题描述:
我有一个City
对象的列表,其中包含name
和id
字段.我使用Struts2,我有一个带select标记的jsp页面.
I have a list of City
objects with name
and id
fields. I use Struts2 and I a have jsp page with a select tag.
<s:select label="Source city"
list="cities"
name="source"/>
这是Action
类
public class CalculationAction extends ActionSupport {
private List<City> cities;
private DataAccessPerformer dao = new DataAccessPerformer();
private String source;
private int sourceId;
public CalculationAction() {
cities = new ArrayList<City>();
// getting cities from database
setCities(dao.getAllCities());
}
// getters and setters
}
City
类
public class City {
private int id;
private String name;
@Override
public String toString() {
return getCityName();
}
// getters and setters
}
通过这种方式,我已经初始化了source
字段,但无法获取sourceId
.
In this way I'm getting source
field initialized, but I can't fetch sourceId
.
我试图将source
字段类型更改为City
,但是却得到了FieldError
I tried to change source
field type to City
, but I got FieldError
源"字段的无效字段值.
Invalid field value for field "source".
我应该如何正确获取ID?
How should I properly fetch the id?
答
要将id
设置为select标签的值,您应该使用其他属性
To set id
to the value of the select tag you should use additional attributes
<s:select label="Source city"
list="cities"
listKey="id"
listValue="name"
name="sourceId"/>