2014-10-23 6 views
2

select에있는 회사의 목록을 얻으려고하고 있지만 오류가 있습니다.방법을 알아낼 수 없습니다 <s: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. 

예외 :

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> 

은 선택에서 사용할 수있는 회사의 목록이 있어야한다 .

UPDATE :

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; 

} 
+0

listAllCompanys() 메소드가있는 java 파일을 게시하십시오. – Ramesh

+0

@Ramesh가 방금 내 Java 파일을 게시했습니다. – RomZes13

답변

4

는 JSP가 작용에 의해 반환 된 선택 태그를 포함

가 여기 내 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; 

} 

CompanyDAOHibernate입니다. 주문을 추가 할 때 bean 속성에 바인드 된 list 속성이 있어야합니다. 값 스택에 top 개체 여야합니다.

대부분의 경우 액션 클래스에서 해당 속성을 초기화하면 Preparable 메서드를 구현하고 prepare() 메서드를 작성하고 목록을 초기화해야합니다.

s:select 태그의 list 속성이 null 일 수 없으므로 예외가 발생합니다. 해당 변수에 대한 참조가있는 결과를 반환하기 전에 태그에 사용 된 변수를 올바르게 초기화해야합니다.

+0

나는 아마 틀린 절전 요구를 가지고 있고,이 오류를 일으킨다. 나는 그것을 조사 할 것이다. – RomZes13

관련 문제