Передача значения из JSP в компонент поддержки страницы JSF

Можно ли передать параметр со страницы JSP в компонент поддержки страницы JSF?

Страница JSP открывается всплывающим окном, когда я вызываю кнопку на странице JSF и выбранное мной значение на странице JSP, я должен иметь возможность перейти к компоненту поддержки JSF.

P.S. Когда я добавляю комментарий и ставлю @anyname, когда кто-то отвечает, часть @namyname обрезается.

Обновление 1

Чтобы получить выбранное значение из JSP в bean-компонент, я применил грубый подход.

Я добавил следующее в JSP

String str = request.getParameter("selectname");

и присвоил строку str скрытому полю

 <input type="hidden" name="hid" value="<%=str%>"  /> 

и в моем bean-компоненте я получаю следующее значение

logger.info("jsp value "+FacesContext.getCurrentInstance().getExternalContext()
               .getRequestParameterMap().get("hid"));

Это почти работает, за исключением того, что я всегда получаю значение, которое выбрал ранее. Например. Первый раз, когда я выбираю 1, а значение, возвращаемое в bean-компоненте, равно null, второй раз, когда я выбираю 2, возвращаемое значение равно 1.

Как я могу получить текущее выбранное значение в моем bean-компоненте?


person Jacob    schedule 26.07.2011    source источник


Ответы (2)


Во-первых, если ваша технология просмотра JSF - JSP, тогда вы можете использовать теги <h:> в jsp, и это становится просто 0 просто добавьте <h:commandButton action="#{yourBean.yourMethod}" />

В противном случае вы все еще можете это сделать, но я бы посоветовал вам сделать свое всплывающее окно также страницей JSF. JSF и JSP несовместимы. Если вам действительно необходимо сохранить ситуацию, вы можете попытаться эмулировать запрос JSF POST на целевой URL-адрес jsf.

person Bozho    schedule 26.07.2011
comment
Если бы я мог использовать <h:>, тогда как я мог бы передавать значения в bean-компонент или в JSF? Не могли бы вы объяснить это поподробнее? Спасибо - person Jacob; 26.07.2011
comment
ну штатным способом: <h:commandButton action="#{bean.method}" / › - person Bozho; 26.07.2011
comment
Как я могу передать значение компонента выбора html bean-компоненту, когда я нажимаю <h:commandButton. В действии я вызываю метод bean-компонента, но не знаю, как передать значение из JSP. - person Jacob; 26.07.2011
comment
Я добавил свой тестовый подход как Обновление 1 в свой исходный пост. - person Jacob; 26.07.2011
comment
у вас могут быть параметры в виде полей bean-компонента с сеттерами и геттерами. Это стандартный подход - person Bozho; 26.07.2011
comment
не могли бы вы предоставить какой-либо пример с параметрами в качестве полей компонента? Спасибо - person Jacob; 26.07.2011
comment
ну, могу, но это первое в каждом уроке, и сейчас я немного занят. - person Bozho; 26.07.2011

f:viewParam позволяет связывать свойства bean-компонентов с параметрами запроса -

-Это вводит несколько новых возможностей

  • Новые теги, которые перемещаются через GET вместо POST и теги, которые перемещаются через GET вместо POST и отправляют параметры вместе с адресом.
  • Отправка данных из форм, отличных от JSF, на страницы JSF
  • Сделать страницы результатов страницы результатов закладками
  • Это новая функция в JSF 2.0.
  • пример: <f:viewParam name="fg" value="#{colorPreferences.foreground}" />
  • Если параметр «fg» не равен NULL, он передается в setForeground до того, как страница будет отрисована.

    <f:metadata>
    <f:viewParam name="param1" value="#{bean.prop1}"/>
    <f:viewParam name="param2" value="#{bean.prop2}"/>
    </f:metadata>
    <h:head>…</h:head>
    <h:body>
    Blah Blah blah #{bean prop1} , blah, #{bean.prop1}
    </h:body>
    

    Если страница вызывается с page.jsp?param1=foo&param2=bar, то «foo» и «bar» передаются в «setProp1» и «setProp2» перед отображением страницы. Если какой-либо из параметров имеет значение NULL (т.е. такой параметр запроса не существует), то связанный установщик не вызывается вообще, и bean-компонент имеет свое обычное значение для этого свойства.

Вы можете найти ответ в руководстве по JSF http://www.coreservlets.com/JSF-Tutorial/jsf2/

person FishGel    schedule 26.07.2011