我有一个对象列表,每个条目都有一个指向对象详细信息视图的链接。 链接的代码是
<h:link outcome="#{detailViewPageName}" rendered="#{listRow.rowData.dbId != null}">
<f:param name="faces-redirect" value="true" />
<f:param name="phoneNr" value="#{listRow.rowData.phoneNr}" />
<f:param name="fromDate" value="#{listRow.rowData.fromDate}" />
<f:param name="toDate" value="#{listRow.rowData.toDate}" />
#{listRow.rowData.phoneNr == "-1" ? msg.subscriptionPhoneNumberUnknown : listRow.rowData.phoneNr}
</h:link>
和前。得到的链接是:
详细信息视图的bean具有使用getter和setter定义的参数,页面也定义了f:viewparam:
<ui:define name="metadata">
<f:metadata>
<f:viewParam name="phoneNr" value="#{billDetailController.model.phoneNr}"/>
<f:viewParam name="fromDate" value="#{billDetailController.model.fromDate}"/>
<f:viewParam name="toDate" value="#{billDetailController.model.toDate}"/>
<f:event listener="#{billDetailController.selectData}" type="preRenderView" />
</f:metadata>
</ui:define>
问题是详细信息bean中的值永远不会设置...
现在我对调试器的看法是,在点击链接后(我假设在加载页面并调用selectData方法之前)调用参数的getter,而不是setter。
bean是ManagedBean和CustomScoped。
我想念什么?
编辑:
Bean(非常简单):
@ManagedBean( name = "billDetailModel" )
@ViewScoped
public class BillDetailModel extends DetailModel
{
private String phoneNr;
private Date fromDate;
private Date toDate;
public String getPhoneNr()
{
return phoneNr;
}
public void setPhoneNr( String phoneNr )
{
this.phoneNr = phoneNr;
}
public Date getFromDate()
{
return fromDate;
}
public void setFromDate( Date fromDate )
{
this.fromDate = fromDate;
}
public Date getToDate()
{
return toDate;
}
public void setToDate( Date toDate )
{
this.toDate = toDate;
}
}
答案 0 :(得分:1)
也许在JSFs Update-Phase期间检查是否有ConverterExceptions
。如果你是尝试将日期设置为期望Date或Calendar-Object的getter / setter,如果没有正确的DateConverter
,这可能无效。
希望有帮助...