У меня следующая проблема: мне нужно перенаправить со «страницы списка» на страницу с подробностями, но мне нужен идентификатор из списка.«record» в этом примере - это атрибут var объекта rich: dataTable.Прежде всего я подумал об этом:
<a4j:commandLink id="detailsLink" value="show details" execute="@this" action="/customerDetails?faces-redirect=true&cusid=#{record.id}" />
Но это неверный синтаксис, поэтому я попробовал что-то вроде этого:
<a4j:commandLink id="detailsLink" value="show details" execute="@this" action="/customerDetails?faces-redirect=true">
<f:attribute name="cusid" value="#{record.id}"/>
</a4j:commandLink>
(я даже попытался f: param) На целистраница Я пытался получить значение с помощью ...
<f:metadata>
<f:viewParam required="false" name="cusid" value="#{customerBean.editCustomer}"/>
</f:metadata>
В основном f: метаданные работают, потому что, когда я пытаюсь использовать его со следующим жестко закодированным параметром, я получаю его значение:
<a4j:commandLink id="detailsLink" value="show details" execute="@this" action="/customerDetails?faces-redirect=true&cusid=120" />
Я нашел решение, но я не уверен, что это правильный путь:
В customerBean я делаю следующее:
public String editCustomer(long customerId)
{
edit(customerId);
return "/customerDetails?faces-redirect=true";
}
Но я не думаю, что этоэто обычный способ отправки и получения параметров с Rich Faces.Может быть, есть лучшее решение?