엘이 왜 나에게 괄호 사이의 매개 변수로 잘못된 개체를 제공합니까?

StackOverflow https://stackoverflow.com/questions/868916

문제

상황은 다음과 같습니다.

Rich : A4J : Form의 DataTable에서 A4J : CommandLink를 만듭니다.

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

이것은 문제없이 작동합니다.

그러나 Ajax 호출로 데이터 가능을 필터링하기 위해 양식을 다시 렌더링하면 값을 선택할 때 선택한 결과, 선택의 색인, 필터링 전 데이터의 잘못된 결과를 제공합니다.

어떤 아이디어?

5 분만에 올바른 솔루션을 제공해 주신 Zack에게 감사드립니다.

괄호 사이의 동작에서 매개 변수를 전달하는 것이 더 우아하지만 이봐 : 이것은 효과가 있다고 생각합니다. :)

정말 고마워.

추신 : 제목도 편집하고 있습니다.

도움이 되었습니까?

해결책

사용해보십시오 :

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

그런 다음 귀하의 작업에서 해당 매개 변수에 액세스하십시오. requestParameter("myparameter") through the FacesContext.

부수적으로, 이것은 Jboss el이 아니며, 통일 된 표현 언어 (EL)입니다. Sun에서 지정한대로 일반적으로 JSP/JSF의 특징 일뿐입니다.

다른 팁

잭의 답변 외에도 매개 변수로 메소드를 호출 할 수 있도록 EL 표현을 확장 해야하는 경우 El Functors 도서관:

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

@datamodel로 주석이 달린 컬렉션을 사용하여 데이터가 채워져 있습니까? 그렇다면 필터링 될 때 컨텍스트에서 제거하여 다시 반복하십시오.

예를 들어.

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

DataTable을 a에 넣습니다 <a4j:region> 나를 위해 일했습니다. 이렇게하면 여전히 JBoss EL 매개 변수를 사용할 수 있습니다.

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