Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 如何使用参数调用方法表达式?_Jsf_Jsf 2 - Fatal编程技术网

Jsf 如何使用参数调用方法表达式?

Jsf 如何使用参数调用方法表达式?,jsf,jsf-2,Jsf,Jsf 2,我可以像这样将表达式作为方法表达式参数传递吗 <p:dataTable id="gridRPBDetails" var="rpbDetail" value="#{tInputBean.detailList}" selection="#{tInputBean.selectedDetails}"> .... <p:commandButton process="@this" action="#{tInputBean.querySubAng

我可以像这样将表达式作为方法表达式参数传递吗

<p:dataTable id="gridRPBDetails" var="rpbDetail"
  value="#{tInputBean.detailList}"
  selection="#{tInputBean.selectedDetails}">

....

   <p:commandButton 
      process="@this" 
      action="#{tInputBean.querySubAnggaranListImpl(rpbDetail.map['budget'])}" ... />

....

</p:datatable>
这是我的操作方法请注意rpbDetail.map['budget']是DataTransferObject的一种类型,因此它应该正好适合:

public void querySubAnggaranListImpl(DataTransferObject budget) {
    DebugUtil.start("querySubAnggaranListImpl");
    String budgetId = budget.getString("id");

    // cari subbudgetlist berdasarkan budgetId
    this.comboChainSubAnggaranList = ch.execute("common", "GetSubBudgetList", 
        new DataTransferObject()
            .putString("budgetId", budgetId))
        .getList("result");
    DebugUtil.end("querySubAnggaranListImpl");
}
我出于依赖性尝试了此操作:action={tInputBean.querySubAnggaranListImpl{rpbDetail.map['budget']},最后在我的浏览器上出现以下错误消息:

/TInput.xhtml@161,40 action={tInputBean.querySubAnggaranListImpl{rpbDetail.map['budget']} 标识符[]不是有效的Java 第1.19节要求的标识符 EL规范标识符的定义 :=Java语言标识符。这 可以通过设置 系统属性 org.apache.el.parser.SKIP_IDENTIFIER_CHECK 这是真的

如何像上面的例子一样将参数传递给方法表达式


谢谢大家!

我终于发现这是我的错误。应该是

rpbDetail.map.subBudget.map.budget. 

rpbDetail.map.budget返回null,因此出现了NullPointerException。

有趣的问题,我可能希望稍后再尝试重现。现在,试试rpbDetail.map.budget。@BalusC:你好,谢谢你的主意。我终于发现这是我的错误。它应该是rpbDetail.map.subBudget.map.budget。rpbDetail.map.budget返回null,因此是NullPointerException。啊,尽管如此,它不应该抛出这种NPE。您使用的servletcontainer/EL impl是什么?我想Tomcat 7.x的标准配置是吧?@BalusC:哦,我明白了。Tomcat 7.0.8。而el解析器是。。org.springframework.web.jsf.el.SpringBeanFacesELResolver,spring版本为3.0.5.RELEASE。
rpbDetail.map.subBudget.map.budget.