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

标签 java jsp struts2 struts-tags

我有一个包含 nameid 字段的 City 对象列表。我使用 Struts2,并且有一个带有选择标记的 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
}

城市

public class City {

    private int id;
    private String name;

    @Override
    public String toString() {
        return getCityName();
    }

    // getters and setters
}

通过这种方式,我正在初始化 source 字段,但我无法获取 sourceId

我试图将 source 字段类型更改为 City,但出现了 FieldError

Invalid field value for field "source".

我应该如何正确获取 id?

最佳答案

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

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

关于java - 如何从 Struts 2 中的选定对象获取对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31936598/

相关文章:

java - 如何在 Android Q 中检查互联网连接?

java - 将原始文本添加到 SOAP header

jsp - 无法从JSP调用servlet

java - 通过常量获取属性值——JSTL

java - 仅 REST - default-interceptor-ref 不起作用

java - Struts 2 重定向 - 永久重定向选项? 301对302

java - com.mysql.jdbc.exception.jdbc4.CommunicationsException : The last packet successfully received from the server was

jsp - 在 JSP 中是否有必要在包含的文件中重新声明标记库?

Android改造导致socket超时异常

java - 以编程方式检测 JVM 是否正在使用类共享?