一尘不染

如何从Struts 2中的选定对象中获取对象属性

jsp

我有一个City带有nameid字段的对象列表。我使用Struts2,我有一个带select标记的jsp页面。

<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

我尝试将source字段类型更改为City,但得到了FieldError

字段“源”的字段值无效。

我应该如何正确获取ID?


阅读 229

收藏
2020-06-08

共1个答案

一尘不染

要设置id为select标签的值,您应该使用其他属性

<s:select label="Source city" 
          list="cities" 
          listKey="id"
          listValue="name"
          name="sourceId"/>
2020-06-08