1
JSF를 프론트 엔드 기술로 사용하여 개발 한 데이터베이스를 검색하려고합니다. 나는 다음과 같은 말에 오류가 점점 오전 : 내 JSF 페이지에서이 오류가 발생하는 이유는 무엇입니까?
수 없습니다
는 찾을 방법 [searchContractors] [0] 여기매개 변수 내가 사용한 코드와 함께. 아무도 내가 왜이 오류가 발생하는지 이해할 수 없기 때문에 내가 잘못하고있는 것이 명백하다는 것을 알 수 있습니까? 도와 주셔서 감사합니다.
JSF 코드
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<head>
<title>Search</title>
</head>
<body>
<h:form id="searchForm">
<H2>Search</H2>
<H4>Please select the county that you live in.
</H4>
<table>
<tr>
<td><h:outputLabel for="county">
<h:outputText id="countyLabel" value="County" />
</h:outputLabel></td>
<td><h:selectOneMenu id="countyName"
value="#{searchBean.countyId}">
<f:selectItems value="#{registerBean.counties}" var="county"
itemLabel="#{county.name}" itemValue="#{county.id}" />
</h:selectOneMenu></td>
</tr>
<tr>
<td><h:commandButton id="searchContractors"
action="#{searchBean.searchContractors(searchBean.countyId)}">
<h:outputText value="Search Contractors" />
</table>
</h:form>
</body>
</html>
자바 코드
@ManagedBean
@SessionScoped
public class SearchBean implements Serializable {
private static final long serialVersionUID = -2107387060867715013L;
private static final String PERSISTENCE_UNIT_NAME = "NeedABuilderUnit";
private static EntityManagerFactory factory;
private int countyId;
public List<BusinessAccount> searchContractors(int countyId) {
factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
List<BusinessAccount> contractorList = new ArrayList<BusinessAccount>();
em.getTransaction().begin();
Query myQuery = em.createQuery("SELECT u FROM BusinessAccount u WHERE u.county.id=:CountyId");
myQuery.setParameter("CountyId", countyId);
contractorList=myQuery.getResultList();
em.getTransaction().commit();
em.close();
return contractorList;
}
public int getCountyId() {
return countyId;
}
public void setCountyId(int countyId) {
this.countyId = countyId;
}
}
어쩌면 잘못된 EL 버전이 실행시에 사용됩니까? [JSF에서 매개 변수를 사용하여 메소드를 호출하는 방법]을 참조하십시오. (http://stackoverflow.com/questions/5273729) – halfbit
답변 해 주셔서 고맙지 만 문제는 아닙니다. 다른 JSF 페이지에서 매개 변수를 성공적으로 전달하고 있습니다. – kellzer
해당 페이지와 해당 관리 Bean 및/또는 사용 된 관리 Bean 사이의 매력적인 차이점을 확인하십시오. – Omar