1

我想在数组中设置值但收到 Classcastexception ..

代码示例:page.xhtml

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:p="http://primefaces.org/ui">
<h:head>
    <title>Really simple CRUD</title>
</h:head>
<h:body>
    <h:form id="form">
        <p:growl autoUpdate="true" showDetail="true"/>
        <h:selectOneMenu converter="javax.faces.Integer" value="#{adminMBean.a[0]}">
            <f:selectItem itemLabel="1" itemValue="1"/>
            <f:selectItem itemLabel="2" itemValue="2"/>
        </h:selectOneMenu>
        <h:commandButton value="ok" action="#{adminMBean.ok()}"/>
        <h:outputText value="sa:#{adminMBean.a[0]}"/>
    </h:form>
</h:body>

@ManagedBean(name = "adminMBean")
@RequestScoped
public class AdminMBean {
  int[] a=new int[1];
public AdminMBean(){}
    public int[] getA() {
    return a;
}
public void setA(int[] a) {
    this.a = a;
}
}

如何使用 selectonemenu 将值设置为数组?

4

1 回答 1

1

读过留言ClassCastException吗?它应该是这样的:

java.lang.ClassCastException:无法将 [java.lang.Integer] 类型的对象添加到 [int] 类型的对象数组中

看,你应该使用Integer[]而不是int[].

private Integer[] a = new Integer[1];

public Integer[] getA() {
    return a;
}

顺便说一句,二传手是不必要的。它不会在这个构造中使用。

于 2012-11-17T15:42:09.433 回答