如何从 <s:select> 字符串中获取整数值

How to get an Integer value from <s:select> String

这是我的 DAO:

public ReportType getByName(String type) {
    EntityManager em = emf.createEntityManager();
    try {
        ReportType rptype2 = em.find(ReportType.class, type);

        return rptype2;
    } catch (Exception e) {
        e.printStackTrace();
        em.close();
    }
    return null;
}

这是我的操作:

ReportDAO dao = new ReportDAO();
    List<ReportType> reportType = dao.show();
    list = new ArrayList<>();
    for (ReportType reportType1 : reportType) {
        list.add(reportType1.getName());
    }
    ReportTypeDAO rpDAO = new ReportTypeDAO();
    reporttype = rpDAO.getByName(type);

这是我的 jsp:

 <h3>Type: <s:select list="list" name="type"></s:select>

这是我的 table:

CREATE TABLE [dbo].[Report_Type](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [nvarchar](100) NULL,

当我提交时,我收到一条字符串格式的记录(名称),但我想获取该记录 ID。 有什么解决办法吗?

使用listKeylistValue:

<s:select list = "list" 
       listKey = "id"
     listValue = "name"
          name = "type" />

阅读更多关于the documentation

您需要使用 listKey 和 listValue 在 select 中指定 ID 和名称。

<s:select label="My Label"
       name="name"
       list="list"
       listKey="id"
       listValue="name"
      "/>