Как извлечь столбец из таблицы (таблица базы данных Persistence) в список «выбрать» «формы» на странице jsp

Я хочу извлечь столбец из таблицы (таблица базы данных 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]

Может ли кто-нибудь указать, что может быть ошибкой ..? заранее спасибо.


person codeofnode    schedule 12.07.2012    source источник
comment
Пожалуйста, решите и другую аналогичную проблему. Спасибо [ссылка] (stackoverflow.com/questions/11463763/)   -  person codeofnode    schedule 13.07.2012


Ответы (1)


Создайте общедоступный геттер для categoryList, иначе тег не сможет получить доступ к списку.

Кроме того, вы делаете слишком много работы в действии, ИМО.

person Dave Newton    schedule 12.07.2012
comment
Пожалуйста, решите и другую аналогичную проблему. Спасибо [ссылка] (stackoverflow.com/questions/11463763/) - person codeofnode; 13.07.2012