Jsf 在编辑datatable行对象之前检索该对象的值
我有一个类型为Action的dataTble cotaining对象,用户可以选择ana Action对其进行修改,因此我希望在修改之前检索旧操作,因此我尝试使用onStart属性进行修改,但出现以下错误:Jsf 在编辑datatable行对象之前检索该对象的值,jsf,Jsf,我有一个类型为Action的dataTble cotaining对象,用户可以选择ana Action对其进行修改,因此我希望在修改之前检索旧操作,因此我尝试使用onStart属性进行修改,但出现以下错误: oct. 15, 2012 11:42:12 AM com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback visit Grave: javax.el.PropertyNotFoundException
oct. 15, 2012 11:42:12 AM
com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback visit
Grave: javax.el.PropertyNotFoundException: /manageProjectTestsPage.xhtml @342,417
onstart="#{projectTestManagementMB.initOldAction}": Property 'initOldAction' not found
on type tn.talan.testFramework.managedBean.ProjectTestManagementMB
代码如下:
public String initOldAction(){
String index=(String)
FacesContext.getCurrentInstance().getExternalContext().
getRequestParameterMap().get("index");
System.out.println("index "+index);
oldSelectedAction =testActionList.get(Integer.parseInt(index));
return null;
}
xhtml:
<p:column headerText="Options">
<p:commandLink id="modifyManualActionBtn" style="margin-right:5px" onstart="#
{projectTestManagementMB.initOldAction}" actionListener="#
{projectTestManagementMB.verifyTestDisponibilityActionModifying}"
title="modify" update=":form:growl :form:testTabView:confirmModifyActionDialog
:form:testTabView:addModifyActionDlg" disabled="#
{projectTestManagementMB.modifyBtnFlag}">
<h:graphicImage value="../images/cssImg/modify_icon.png" heigth="13"width="17"/>
<f:param name="index" value="#{rowIndex}" />
</p:commandLink>
....
....
那么,在执行actionListener之前,如何使用onstart属性检索旧的操作值呢#
{projectTestManagementMB.verifyTestDisponibilityActionModifying}“
如果我不能使用它,还有其他解决方案吗?您正在检索此错误,因为
onstart
属性是一个值属性,应该设置为Javascript表达式,以便在ajax请求开始之前执行。您可以在这里使用EL表达式,但是它不像actionListener
那样需要方法表达式
通过在EL表达式中没有括号来表示onstart
,JSF假定这是对托管属性而不是方法的调用。请尝试以下方法:
onstart="#{projectTestManagementMB.initOldAction()}"
但是,这不是您的实际问题,因为您的方法initOldAction()
不会返回包含Javascript表达式的字符串。我不认为这个属性做了您认为它做的事情,它只是一个客户端回调