2012-10-12 3 views
4

다른 페이지에 사용자 입력을 매개 변수로 전달하려고합니다. 여기 내 코드 :입력 텍스트 값을 매개 변수로 전달

<h:form> 
    <h:inputText value="#{indexBean.word}"/> 
    <h:commandLink value="Ara" action="word.xhtml"> 
      <f:param value="#{indexBean.word}" name="word"/> 
    </h:commandLink> 
</h:form> 

글쎄,이 작동하지 않습니다. 내 backing bean에서 inputtext 값을 읽을 수는 있지만 word.xhtml로 보낼 수는 없습니다. 이것은 또한 작동하지

<h:form> 
    <h:inputText binding="#{indexBean.textInput}"/> 
    <h:commandLink value="Ara" action="word.xhtml"> 
      <f:param value="#{indexBean.textInput.value}" name="word"/> 
    </h:commandLink> 
</h:form> 

:

여기에 내가 시도 또 다른 접근 방식이다.

그래서 내가 뭘 잘못하고 있니?

답변

2

<f:param>은 양식이있는 페이지가 요청 될 때 평가되고 양식이 제출 될 때 평가되지 않으므로 구체적인 문제가 발생합니다. 따라서 초기 요청시와 동일한 값으로 유지됩니다.

구체적인 기능 요구 사항이 정확하게 명확하지 않다,하지만 특정 기능 요구 사항은 기본적으로 두 가지 방법으로 해결할 수 있습니다

  1. 를 사용하여 일반 HTML.

    <form action="word.xhtml"> 
        <input type="text" name="word" /> 
        <input type="submit" value="Ara" /> 
    </form> 
    
  2. 행동 방식에 리디렉션을 보냅니다.

    public String ara() { 
        return "word.xhtml?faces-redirect=true&word=" + URLEncoder.encode(word, "UTF-8"); 
    } 
    
+0

<h:form> <h:inputText value="#{bean.word}" /> <h:commandButton value="Ara" action="#{bean.ara}" /> </h:form> 

그래 그것은 나를 위해 작동! 나는 또한 flashScope를 사용해 보았는데 너무 효과적이다. 당신의 도움을 주셔서 감사합니다! – ozubaba