为什么我在 javaee 中收到“找不到方法”错误?

问题描述 投票:0回答:1

我目前正在学习 JSF,使用 JavaEE,因此我将不胜感激任何可能的帮助。我有一段代码,当我尝试访问(通过 JSF 数据表,使用命令按钮)时,它给出了以下错误:

我收到的错误是:

“javax.el.MethodNotFoundException:/page.xhtml @66,93 action =“#{example.addToCart(p)}”:找不到方法:类管理bean.example.addToCart(javax.faces.model.ResultSetDataModel $ ResultSetMap )”

这是数据表的 xhtml 代码。

                <h:dataTable value="#{example.info}" var="p" summary="Product list" border="0" cellpadding="2" cellspacing="0" rowClasses="" rules="all" style="border:solid 1px" class="tablef table container">
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Product name"/>
                        </f:facet>
                        <h:outputText value="#{p.itemName}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Product Description"/>
                        </f:facet>
                        <h:outputText value="#{p.itemDesc}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Product Price"/>
                        </f:facet>
                        <h:outputText value="#{p.price}"/>
                    </h:column>
                    <h:column>
                        <f:facet name="header">
                            <h:outputText value="Add To Cart"/>
                        </f:facet>
                        <h:commandButton action="#{example.addToCart(p)}" value="Add Item"/>
                    </h:column>
                </h:dataTable>

这是要访问并打印到控制台的java代码。

    public void addToCart(HashMap product) {
        System.out.println("This is a test: " + product.entrySet());
    }

传入数据表的原始数据是一个结果集(这就是变量 p 的含义)。当使用 ResultSet 作为参数类型而不是 HashMap 时,我收到非常类似的错误消息。

我尝试了不同的参数类型,唯一有效的是一个对象,我不确定如何使用它来访问键:值。

我希望它获取信息然后将其打印到控制台。

结果是上面显示的错误。

java jsf xhtml
1个回答
0
投票

您用错误的类型替换了参数并得到

javax.el.MethodNotFoundException:/page.xhtml @66,93 action =“#{example.addToCart(p)}”:找不到方法:类managementbean.example.addToCart(javax.faces.model.ResultSetDataModel $ ResultSetMap)

您需要将该方法的参数更改为

Map
。像这样的东西

example.addToCart(p.getRawData())
© www.soinside.com 2019 - 2024. All rights reserved.