Jsf CoreJavaFaces-第三版(CayHorstmann):第4章选择标签第165页示例不起作用

Jsf CoreJavaFaces-第三版(CayHorstmann):第4章选择标签第165页示例不起作用,jsf,Jsf,我不确定该如何回答这个问题,因为其中涉及到几个文件(.java、.xhtml等)。无论如何,这个程序包括两个复选框(selectmanycheckbox)和其他复选框。此SelectMany复选框上有一个onchange=submit() 以下是我注意到的: 为每个复选框生成的html都有一个onchange=submit()。有趣的是,通过勾选复选框,它每次都在提交表单 真正的问题是,当我选中其中一个复选框时,出现了与打印内容完全相同的错误 ==========================

我不确定该如何回答这个问题,因为其中涉及到几个文件(.java、.xhtml等)。无论如何,这个程序包括两个复选框(selectmanycheckbox)和其他复选框。此SelectMany复选框上有一个onchange=submit()

以下是我注意到的:

  • 为每个复选框生成的html都有一个onchange=submit()。有趣的是,通过勾选复选框,它每次都在提交表单
  • 真正的问题是,当我选中其中一个复选框时,出现了与打印内容完全相同的错误

    ====================================================================== java.lang.ClassCastException:[我不能强制转换为[Ljava.lang.Object

    原因: java.lang.ClassCastException-[I不能转换为[Ljava.lang.Object

    我不明白这里的意思,知道吗

    之后我做的是删除所有复选框并提交表单。仍然会收到相同的错误

    有什么想法吗?

    上提供了。您的特定代码在
    javaee/ch04/select
    文件夹中提供

    为每个复选框生成的html都有一个onchange=submit()。有趣的是,通过选中复选框,它每次都在提交表单

    它是由代码示例中的
    设置的。
    onchange
    属性确实完全没有必要。这可能是作者的疏忽


    真正的问题是,当我选中其中一个复选框时,出现了与打印内容完全相同的错误

    我不明白这里的意思,知道吗

    [I
    int[]
    类型的签名。例外情况是
    int[]
    类型的实例不能强制转换为
    对象[]
    的实例。这没有意义,应该可以正常工作。这个特殊问题是由其他原因引起的


    之后我做的是删除所有复选框并提交表单。仍然会收到相同的错误

    代码示例中的
    也绑定到
    int[]
    属性


    但是,删除它们不是正确的解决方案。它应该可以正常工作。您的问题是由其他更深层次的问题造成的。这可能是所使用的EL实现中的错误。您使用的servletcontainer品牌/版本是什么?您的
    web.xml
    声明的ServletAPI版本是什么?您是否尝试升级servletcontainer

    我假设您正在尝试在Tomcat 6上运行该示例

    您的WEB-INF/lib文件夹应该只有以下文件:jsf-api.jar、jsf-impl.jar


    在您的Tomcat/lib文件夹中,您应该将文件el-api.jar替换为文件el-api2.2.jar。您可以从

    @BalusC下载它。我使用的是:a.Eclipse Indigo b.apache Tomcat 7.0.11 c.myfaces 2.0.5。顺便说一句,在这本书中有一个javaee和Tomcat版本。我使用的是Tomcat版本。我使用m运行了这个示例,没有遇到任何问题Tomcat 7.0.11上的ojarra 2.0.4。您的
    /WEB-INF/lib
    文件中没有任何特定于servletcontainer的
    el-*.jar
    文件吗?(如果有,请删除它们,它们不属于那里)@BalusC/WEB-INF/lib上没有任何内容:O(可能是myfaces 2.0.5的错误吗?可能是。我不使用myfaces,所以我不能确认。Mojarra 2.0.4是可用的。应该是替换
    /WEB-INF/lib
    中的两个
    jsf-*.jar
    文件,必要时删除
    WEB.xml
    @BalusC中与myfaces相关的任何参数/设置。我下载了mojara2.1.1和I pu。)问题是当我启动tomcat时,有很多错误消息。
    java.lang.ClassCastException: [I cannot be cast to [Ljava.lang.Object;