Вы можете использовать отрендеренное свойство, как сейчас.Вопрос в том, как вы хотите настроить его.Есть немало способов в зависимости от ситуации.Вы можете сделать индивидуальный набор значений, которые отображаются только тогда, когда их значение равно true.
т.е.
<p:outputPanel rendered="#{bean.someBoolCheckCaseOne}" />
<p:outputPanel rendered="#{bean.someBoolCheckCaseTwo}" />
...
<p:outputPanel rendered="#{bean.someBoolCheckCaseThree}" />
или, если вы получаете гораздо более широкий диапазон, вы можете напрямую внедрить HTML в панель с помощью
<p:outputPanel ...>
<h:outputPanel escape="false" value="#{bean.htmlWithoutEscapes}" />
</p:outputPanel>
Для передачи параметров
<p:commandLink actionListener="#{bean.onClick}"...>
<f:attribute name="someParam" value="#{someValue}" /> <!-- you can get this from the component attribute map -->
</p:commandLink>
//Managed Bean
public void onClick(ActionEvent evt)
{
Object param = evt.getComponent().getAttributes().get("someParam");
}
На самом деле я думаю, что это довольно тривиально.Очевидно, вам нужно определить вход и выход.Я бы порекомендовал использовать bean-компонент поверх requestScope просто потому, что PrimeFaces 2.2.1 имеет нулевой указатель в конвертере для текста, который был исправлен всего несколько недель назад.Я не уверен, почему вы после удаленной команды.Его использование довольно специфично, и если вам не нужна эта специфика (я сомневаюсь, что вы это делаете), это просто добавляет некоторую сложность и места для того, чтобы что-то пошло не так.
Если вы хотите сделать все это в requestScope, вы можете сделать это тоже ... Я просто не рекомендовал бы это.
Я использую это для таких вещей, как строка поиска и т. Д ...
<h:inputText value="#{requestScope.searchString}" style="width:95%;"/>
<p:commandButton value="Search" actionListener="#{inventoryBean.wardrobe.searchViaParameters}" update="inventoryWardrobe:searchForm">
<f:attribute name="searchString" value="#{requestScope.searchString}"/>
</p:commandButton>
Надеюсь, это поможет, это мощный компонент.