Как получить целочисленное значение из <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>

Вот мой стол:

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

Когда я отправляю, я получаю запись в формате String (Имя), но я хочу получить этот идентификатор записи. Есть ли решение?

2 ответа

Решение

Использование listKey а также listValue:

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

Читайте больше на документации

Вы должны указать идентификатор и имя в вашем выборе, используя listKey и listValue.

<s:select label="My Label"
       name="name"
       list="list"
       listKey="id"
       listValue="name"
      "/>
Другие вопросы по тегам