Jsf RichFaces rich:CollableSubtable未通过ajax加载结果
我试图通过一个参数化的ajax方法调用来填充rich:collapsalbeSubTable 其目的是显示客户列表,当选择客户时,必须进行ajax调用以加载合同列表以填充子表Jsf RichFaces rich:CollableSubtable未通过ajax加载结果,jsf,jsf-2,richfaces,Jsf,Jsf 2,Richfaces,我试图通过一个参数化的ajax方法调用来填充rich:collapsalbeSubTable 其目的是显示客户列表,当选择客户时,必须进行ajax调用以加载合同列表以填充子表 <rich:dataTable value="#{searchController.results}" var="customer"> <rich:column colspan="2"> <rich:collapsibleSubTableToggler for="co
<rich:dataTable value="#{searchController.results}" var="customer">
<rich:column colspan="2">
<rich:collapsibleSubTableToggler for="contractSubTable" />
<h:outputText value="#{customer.name}" />
</rich:column>
<rich:collapsibleSubTable
value="#{searchController.getFirstTenContracts(customer.partnerId)}"
var="contract" id="contractSubTable" expanded="false"
expandMode="ajax">
<rich:column>
<h:outputText value="#{contract.contractId}" />
</rich:column>
<rich:column>
<h:outputText value="#{contract.contractDesc}" />
</rich:column>
</rich:collapsibleSubTable>
</rich:dataTable>
控制器方法的签名为:
public List<Contract> getFirstTenContracts(Object partnerId)
public List getFirstTenContracts(对象partnerId)
如果我的方法有问题,请有人帮我解决这个问题或给我指出正确的方向。java.lang.NoSuchMethodError揭示了问题: 您的方法签名有一个类型为
Object
的参数,您传入的是我假定的int
。即使在普通的旧java中,这也会导致编译失败
只需更改方法签名,您就可以了这是所有stacktrace吗?抱歉,应该立即发布整个stacktrace。它是长数据类型,但我已经尝试了很长时间,如果您可以告诉Object所有的结果都相同…@dngfng,那么这很可能是因为您的EL版本不支持采用参数的方法表达式类型。您使用的是什么应用服务器和JSF/EL发行版?这个基于参数的EL是在2.2中引入的。我们在Tomcat 6上使用带JSF 2.1的EL api 2.2,我首先检查的是EL api。@dngfng Tomcat 6附带jsp-api.jar(以及其他与jsp 2.1相关的jar)。因此,请确保您的app server安装中没有任何2.1相关的JAR,并重新启动您的app server。
public List<Contract> getFirstTenContracts(Object partnerId)