«Выбрать» не заполняется из списка <String> в распорках

У меня есть следующие источники:

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <constant name="struts.devMode" value="true" />
    <constant name="struts.custom.i18n.resources" value="ApplicationResources" />

    <package name="vislabWebShop" extends="struts-default">

        <action name="UserForward">
            <result>/pages/Login.jsp</result>
        </action>

        <action name="UserLogin" class="vislabWebShop.controller.LoginAction">
            <result name="success">/pages/Welcome.jsp</result>
            <result name="input">/pages/Login.jsp</result>
        </action>

        <action name="UserRegister" class="vislabWebShop.controller.RegisterAction">
            <result name="success">/pages/RegisterSuccess.jsp</result>
            <result name="input">/pages/Register.jsp</result>
        </action>

        <action name="UserRegisterNew">
            <result>/pages/Register.jsp</result>
        </action>

        <action name="UserRegisterSuccess">
            <result>/pages/Login.jsp</result>
        </action>

        <action name="ProductSearchForward">
            <result>/pages/SearchProduct.jsp</result>
        </action>

        <action name="ProductSearch" class="vislabWebShop.controller.ProductSearchAction">
            <result name="success">/pages/Login.jsp</result>
        </action>
    </package>
</struts>

ProductSearchAction.java:

package vislabWebShop.controller;

import java.util.ArrayList;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

public class ProductSearchAction extends ActionSupport
{
  private List<String> categories;
  private String chosenCategory;

  public ProductSearchAction()
  {
    categories = new ArrayList<String>();
    categories.add("Eins");
    categories.add("Zwei");
    categories.add("Drei");
  }

  @Override
  public String execute() throws Exception
  {
    return SUCCESS;
  }

  public List<String> getCategories()
  {
    return categories;
  }

  public void setCategories(List<String> categories)
  {
    this.categories = categories;
  }

  public String getChosenCategory()
  {
    return chosenCategory;
  }

  public void setChosenCategory(String chosenCategory)
  {
    this.chosenCategory = chosenCategory;
  }
}

SearchProduct.jsp:

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ taglib prefix="s" uri="/struts-tags"%>

    <html>
    <head>
    <title><s:text name="welcome.title" /></title>
    </head>

    <body bgcolor="white">

        <font color="red"> <s:actionmessage />
        </font>

    <p>
        <b><s:text name="product.search.title" /></b>
    </p>

    <s:form action="ProductSearch" focusElement="description">
        <s:textfield name="description" key="prompt.description" size="20" />
        <s:textfield name="minprice" key="prompt.price.min" size="20" />
        <s:textfield name="maxprice" key="prompt.price.max" size="20" />
        <s:select key="product.search.category" headerKey="-1" 
        headerValue="Bitte wählen Sie eine Kategorie"
            list="categories" />
        <s:submit value="Produkt suchen" align="right" />
    </s:form>

    <font color="red"> <s:actionerror label="label" />
    </font>


</body>
</html>

Теперь у меня проблема, что я всегда получаю следующую ошибку, если я захожу из Action ProductSearchForward на сайт JSP SearchProduct.jsp:

org.apache.jasper.JasperException: тег «выбрать», поле «список», имя «product.search.category»: Запрошенный ключ списка «категории» не может быть разрешен как тип коллекции / массива / карты / перечисления / итератора , Пример: люди или люди. {Имя} - [неизвестное местоположение]

Я просто хочу, чтобы DropDownList заполнялся из заданногоArrayList<String> (List<String>), Но это не работает. Если я устанавливаю список содержимого напрямую, он работает нормально.

Ответы на вопрос(1)

Ваш ответ на вопрос