Передача параметров запроса из управляемого компонента на страницу JSF - PullRequest
4 голосов
/ 02 февраля 2011

Я новичок в JSF 2.0.Я застрял в следующей проблеме.У меня есть страница, с которой вызывается метод действия управляемого компонента.В этом я делаю некоторые пользовательские обработки, и он переходит на другую страницу HTML.Теперь проблема в том, что перед тем, как перейти к следующей странице HTML, мне нужно передать некоторые параметры вместе с ней.Я использовал следующие подходы

1- Поместите эту переменную в requestMap и попытался получить доступ к странице таким образом

<h:outputText value="#{param['userid']}"/>

она не работаетЗатем кто-то сказал мне, что в JSF 2.0 нет стандартного способа передачи параметров запроса вместе с URL, поэтому попробуйте передать его как запрос сервлета.Я изменил код следующим образом

 ServletRequest request = (ServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
    ServletResponse response = (ServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
             //("user",user);
    //ServletRequest request = (ServletRequest)context.getRequest();
    request.setAttribute("userid", "prithvi");
    System.out.println("Came here");
    RequestDispatcher rd = request.getRequestDispatcher("testf.xhtml");
    try {
        rd.forward(request, response);
    } catch (ServletException ex) {
        Logger.getLogger(TestFlashScope.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Logger.getLogger(TestFlashScope.class.getName()).log(Level.SEVERE, null, ex);
    }

Я пытался получить доступ таким же образом, но безуспешно.значение не отображается.Может кто-нибудь помочь мне, как достичь этого решения.

BR, Prithvi

Ответы [ 2 ]

4 голосов
/ 02 февраля 2011

Просто установите результат в качестве свойства бина.

page1.xhtml

<h:commandButton value="Submit" action="#{bean.submit}" />

Боб:

public String submit() {
    this.result = "blah";
    return "page2"
}

page2.xhtml

<h:outputText value="#{bean.result}" />

(при условии, что вы не используете <redirect/> в <navigation-case>, если есть)

1 голос
/ 29 апреля 2011

вы должны использовать Flash Scope. Для получения дополнительной информации вы можете посмотреть это сообщение в блоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...