java - 无法弄清楚如何 <s :select>

标签 java hibernate jsp select struts2

尝试获取select中的公司列表,但它给了我一个错误。

type Exception report

message tag 'select', field 'list', name 'workOrder.company': The requested list key          
'listAllCompanys' could not be resolved as a collection/array/map/enumeration/iterator
   type.   Example: people or people.{name} - [unknown location]

description
   The server encountered an internal error that prevented it from fulfilling this request.

异常(exception):

org.apache.jasper.JasperException: tag 'select', field 'list', name 'workOrder.company': The requested list key 'listAllCompanys' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:585)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)

我的workOrder.jsp 文件包含:

<s:select list="listAllCompanys"  listValue="companyName" name="workOrder.company"></s:select>

当我要添加新的工作订单时, select 中应该有一个可用的公司列表。

更新:

这是我的 listAllCompanies() 方法

public List<Company> getCompanyList() {
    return companyList;
}

//////////////////////////////////////////
/////////////////////////////////////////

public List<Company> getListAllCompanys() {
    return listAllCompanys;
}

private List<Company> listAllCompanys;

public String listAllCompanys() throws Exception
{
    CompanyDaoHibernate dao = new CompanyDaoHibernate();
    listAllCompanys = dao.getListOfCompanys();

    return SUCCESS;

}

公司DAOHibernate:

public List<Company> getListOfCompanys()
{

    SessionFactory sf = HibernateUtil.getSessionFactory();
    Session session =  sf.openSession();

     @SuppressWarnings("unchecked")
    List<Company>  returnList =  (List<Company>)session.createCriteria(Company.class).list();
    session.close();
    System.out.println("Printing companies... "+returnList);
    return returnList;

}

最佳答案

JSP 包含由操作返回的选择标记。当您添加订单时,它应该有一个绑定(bind)到 bean 属性的 list 属性。它应该是值堆栈中的top对象。

在大多数情况下,在操作类中初始化该属性更好地实现 the preparable interface您必须在其中编写 prepare() 方法并初始化列表。

抛出异常是因为 s:select 标记的 list 属性不能为 null。在返回引用该变量的结果之前,您应该正确初始化用于标记的变量。

关于java - 无法弄清楚如何 <s :select>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26520811/

相关文章:

java - 测试 Controller 方法失败并抛出 HttpMessageNotReadableException

java - 在 JTextArea 的列中对齐字符串

hibernate - 常量作为 NamedQueries 中的参数是一个好习惯吗?

java - 注解@SequenceGenerator和编译错误

java - 更改JSP文件名时还需要更改什么

java - 如何使用 JavaScript 更新我的 JSP 页面的某些组件

android和ios的java socket编程聊天室

java - Hibernate继承和具有相同类的多个表

java - JSTL SQL 基础知识

java - 如何将 String 值转换为 Pointer<Byte> (Java, JNAerator)?