2009-05-15 6 views
1

여기 상황이다 CommandLink는이 값을 선택하고 제이 보스 엘 액션 구문왜 EL은 나에게 괄호 사이의 매개 변수로서 잘못된 개체를 제공합니까? A4J에서 데이터 테이블 : 풍부한에서</p> <p>:

action="#{bean.myaction(myparameter)}" 

와 콩에 전달하기 : 형태, 나는 A4J를 만들 이 문제없이 작동합니다.

그러나 양식을 다시 렌더링하여 아약스 호출을 사용하여 데이터 테이블을 필터링하면 값을 선택하면 선택 항목의 인덱스가 아니라 필터링 전의 데이터가 잘못 표시됩니다.

아이디어가 있으십니까?

잭에게 5 분 안에 적절한 해결책을 제공해 주셔서 감사합니다.

나는 괄호 사이의 작업에서 매개 변수를 전달하는 것이 더 우아하다고 생각하지만,이 방법이 효과적입니다. :)

고맙습니다.

p.s. 제목도 편집 중입니다. 사용

답변

2

시도 :

<a4j:commandLink action="#{bean.myaction}"> 
    <f:param name="myparameter" value="paramValue" /> 
</a4j:commandLink> 

다음 FacesContext을 통해 requestParameter("myparameter")을 통해 작업에 해당 매개 변수에 액세스 할 수 있습니다.

부수적으로, 이것은 jboss EL이 아니며 EL (Unified Expression Language)입니다. Sun에서 지정한 JSP/JSF의 기능입니다.

잭의 대답에 추가
2

, 난 당신이 매개 변수와 메서드를 호출 할 수있는 기능을 가지고 위해 EL 표현식을 확장해야하는 경우, 당신은 EL Functors 라이브러리를 사용할 수있는 말을 :

action="#{bean.myaction$[myparameter].action}" 
+0

그는 JBoss EL을 사용하고 있습니다. # {bean.myaction (myparameter)} 할 수 있습니다. – Damo

+0

정보를 제공해 주셔서 감사합니다. JBoss EL을 사용한 적이 없습니다. – romaintaz

0

인가를 @DataModel 주석이 달린 컬렉션을 사용하여 데이터 테이블을 채웠습니까? 그렇다면 필터링 할 때 컨텍스트에서 제거하여 다시 요청하도록하십시오.

예 :

//In filter method 
Contexts.removeFromAllContexts("yourDataModelCollection"); 
+0

고마워,하지만 데이터 모델을 사용하고 있지 않다. 나는 seam 엔터티 쿼리 프레임 워크를 사용하고있다. –

0

데이터 테이블을 <a4j:region>에두면 효과적입니다. 이렇게하면 JBoss EL 매개 변수를 계속 사용할 수 있습니다.