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