문제

JSF에서 UI 부분을 따르고 있습니다. 입력 필드가있는 간단한 검색 양식 및 제출.

    <h:form>
        <h:commandButton action="#{operation.found}" value="#{msg.search}" />
        <h:inputText name="searchParam"/>
    </h:form>

그리고 그에 따라 백엔드에서 다음 방향으로 입력 필드의 값을 얻으려고합니다.

public List<Store> getFound() {

    String name = (String) FacesContext.getCurrentInstance()
            .getExternalContext().getRequestParameterMap().get(
                    "searchParam");

    SessionFactory sessionFactory = new Configuration().configure()
            .buildSessionFactory();

    HibernateTemplate hbt = new HibernateTemplate();

    hbt.setSessionFactory(sessionFactory);

    foundStores = hbt.find(BEAN_PATH + " WHERE name = ?",
            new Object[] { name });

    return foundStores;

}

그리고 null 이름은 백엔드로 전달됩니다.

.jsf 부분에서 문제가있는 것 같지만 언뜻보기에서 괜찮아 보입니다 ...

도움이 되었습니까?

해결책

당신은 지적해야합니다 <h:inputText> 관리 대상 부동산으로 :

<h:inputText name="searchParam" value="#{searchBean.searchParam}" />

콩 안에 정의하십시오.

private String searchParam;
public String getSearchParam() {..}
public void setSearchParam(String searchParam) {..}

그런 다음 SearchParam을 사용하십시오 getFound() 방법;

물론, 당신은 콩을 관리되는 콩으로 정의해야하지만, 당신이 그것을했다고 가정합니다.

<managed-bean>
    <managed-bean-name>searchBean</managed-bean-name>
    <managed-bean-class>mypackage.SearchBean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
</managed-bean>

JSF 자습서를 확인할 수 있습니다 (예 : 이것, 예를 들어)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top