Передача параметров в компонент PrimeFaces Star Rating? - PullRequest
8 голосов
/ 27 января 2011

Я пытаюсь использовать компонент Star Rating от PrimeFaces.Тем не менее, он не позволяет передавать параметры.Это делает для меня невозможным поиск, чтобы получить сущность из базы данных, которую я хотел бы оценить.Я пробовал что-то подобное, но безуспешно:

<p:rating value="#{myAction.rating}">
   <f:param name="myObjID" value="#{myObj.id}" />
</p:rating>

Есть ли другой способ передать параметр в мой класс действий?Я что-то упускаю, что позволило бы мне получить поведение, которое я хочу?Спасибо за вашу помощь!

Ответы [ 4 ]

1 голос
/ 21 августа 2013

Я решил это следующим образом:

<h:form>
    <p:rating id="rate" value="#{userHomeControllerBean.rating}">
        <f:param name="contentId" value="#{sharedcontent.content.id}" />
        <p:ajax event="rate" listener="#{userHomeControllerBean.onrate}" update="rate" />
        <p:ajax event="cancel" listener="#{userHomeControllerBean.oncancel}" update="rate" />
    </p:rating>
</h:form>

В моем компоненте поддержки я могу получить значение для contentId следующим образом:

Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
int contentId = Integer.parseInt(params.get("contentId"));
1 голос
/ 24 марта 2011

Я наконец-то понял, как это сделать ...

<h:form>
   <p:rating value="#{myAction.rating}" />
   <input type="hidden" name="selectedObj" value="#{myObj.id}" />
</h:form>

Затем, в своем классе действий, я могу получить значение для selectedObj, выполнив это ...

String selectedObjID = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("selectedObj");

Кусок торта!

0 голосов
/ 31 января 2011

Вы пытались использовать f: setPropertyActionListener в своей кнопке, чтобы вы могли отправить любой параметр, который вы хотите, в ваш класс действий? или вы должны сделать это внутри рейтинга p:

или вы можете сделать что-то вроде

Рейтинг частных рейтингов;

// getter -setter

и в вашем бине действия вы можете получить доступ к этому значению ((UIParameter) rating.getChildren () получаем (0).) ПолучитьЗначение ();.

Если это так, то вы, возможно, делаете что-то неправильно, поскольку это не должно быть так, когда вы используете JSF.

только мои два цента ...

0 голосов
/ 28 января 2011

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

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

идентификатор устанавливается в бине MyObj при загрузке страницы

<p:rating rateListener="#{myObj.myRating}" />

Поскольку у вашего компонента есть идентификатор, при вызове метода rateListener идентификатор можно использовать для сохранения рейтинга в базе данных

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