问题描述
我有一个 City 对象列表,其中包含 name 和 id 字段.我使用 Struts2,并且我有一个带有选择标签的 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 }
城市类
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"/>