2013-03-08 2 views
2

입력 된 양식을 가져와 Bean 필드에 값을 입력해야합니다.리디렉션에서 JSF의 GET 요청 매개 변수를 읽는 방법

그 후 나는 버튼 콩 조치를 눌러 트리거 될 것을 원하고 그것이 내가 HREF를 사용하여 다른 페이지로 이동해야

을 완료 할 때.

나는이 시도 :

나는 오른쪽 name.jsf 페이지로 이동 관리
<div class="getname"> 
    <h:form> 
     Enter name 
     <h:inputText value="#{bean.name}" /> 
     <br/> 
    </h:form> 

    <h:commandButton value="Purchase" action="#{bean.sendName}"/> 
    <a href="name.jsf?id=#{bean.id}" /> 
</div> 

합니다 (ID에 따라) 그 작업이 트리거되지 않습니다.

어떤 아이디어가 있습니까?

답변

2

commandButton 구성 요소는 양식 값을 관리 속성에 제출합니다. 이렇게하려면 <h:form> 구성 요소 안에 배치해야합니다.

또한 작업이 호출 된 후 페이지에서 다른 곳으로 이동할 때 별도의 링크가 필요하지 않습니다. 관리 빈 액션 메소드는 FacesServlet이 앞으로 진행할 탐색을 정의하는 String을 반환 할 수 있습니다.

@ManagedBean("bean") 
public class MyBean { 

    private String id; 
    private String name; 

    /// property accessors and other stuff 

    public String sendName() { 
    // do stuff 
    return "name.jsf?id=" + this.id; 
    } 
} 

작업이 완료되면이 반환 값은 해당 정의보기로 이동하도록 지시합니다.

+0

이것은 이전에 한 일이지만 문제는이 Bean이 @RequestScoped이고 name.jsf? id = page로 이동할 때 그러한 종류의 중재를 사용하면 콩의 내용이 정리되고 필요합니다. content on name.jsf? id = page – user1692261

+0

@ user1692261 ID가 URL의 요청 매개 변수로 전달됩니다. 다른 bean의 요청 매개 변수 맵에서 가져올 수 있습니다. –

+0

@ user1692261 ..'name.jsf? id'는 다른 bean을 사용합니까? – SRy

0

명령 단추 및 href가 모두 다른 동작하며, 동작을 실행합니다 명령 버튼을 클릭

<h:commandButton value="Purchase" action="#{bean.sendName}"/> 
    <a href="name.jsf?id=#{bean.id}" /> 

당신은 당신의 콩이 뭔가를 필요로하는 페이지 name.jsf에 사용자를 취할 것 href가 클릭

@ManagedBean("bean") 
public class TestBean { 

    @ManagedProperty(value = "#{param.id}") 
    private String id; 
    private String name; 

    public String sendName() { 
    //do stuff 
    return "name.jsf?id=" + this.id; 
    } 
} 
또한 같은 결과를 얻을 수 귀하의 XHTML이 작업을 수행 할 수

,

<f:metadata> 
    <f:viewParam name="id" value="#{bean.id}" /> 
</f:metadata> 

위 행은 bean이 초기화되기 전에 request 매개 변수 id에서 bean의 매개 변수 id를 설정합니다.

관련 문제