Я хочу извлечь столбец из таблицы (таблица базы данных Persistence) в список «выбрать» «формы» на странице jsp. Я использую struts2 и спящий режим.
Мой столбец - «имя», а таблица - «Категория». Я сделал конфигурацию сопоставления и классы компонентов.
код в «форме» страницы jsp:
<s:select label="Select Category :" name="cname" list="categoryList" />
Мой класс действий:
package com.rambo.action;
import beans.Category;
import com.opensymphony.xwork2.ActionSupport;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Session;
public class FindCategory extends ActionSupport {
private List<Category> cl = new ArrayList<Category>();
private List<String> categoryList = new ArrayList<String>();
@Override
public String execute() throws Exception {
Session session = null;
try {
session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
this.cl = (List<Category>) session.createQuery("from Category").list();
if (this.cl.isEmpty()) {
this.addActionError("Sorry.. No category Available. Try again Later.!");
return ERROR;
}
for (int i = cl.size()-1; i >= 0; i--) {
categoryList.add(cl.get(i).getName());
}
session.getTransaction().commit();
} catch (Exception e) {
this.addActionError("Oops. An Error Encountered...!");
return ERROR;
}
return SUCCESS;
}
}
Сопоставление в Category.hbm.xml:
<property name="name" type="string">
<column name="NAME" length="20" not-null="true" />
</property>
Геттер и сеттер бина "Category.java":
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
Мой сервер Glassfish показывает ошибку как:
org.apache.jasper.JasperException: tag 'select', field 'list', name 'cname': The requested list key 'categoryList' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
root cause tag 'select', field 'list', name 'cname': The requested list key 'categoryList' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
Может ли кто-нибудь указать, что может быть ошибкой ..? заранее спасибо.