JSF - Selectonemenu数组int

时间:2012-11-17 14:23:30

标签: jsf

我想在数组中设置值但接收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将值设置为数组?

1 个答案:

答案 0 :(得分:1)

读取 ClassCastException消息了吗?它应该是这样的:

  

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

请注意,您应该使用Integer[]代替int[]

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

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

顺便说一下,setter是不必要的。它不会用在这个结构中。