对于春天的mvc复选框感到疯狂

时间:2010-08-25 12:48:39

标签: model-view-controller spring checkbox

我让复选框正常工作,但我不记得我对我的代码做了哪些修改。它永远不会再工作了。它一直在说:

org.springframework.web.servlet.tags.form.Checkbox Tag - 
java.lang.NullPointerException
at org.springframework.web.servlet.tags.form.Selected ValueComparator.exhaustiveCompare(SelectedValueCom parator.java:157)

java看起来像这样:

public class ServiceRequest implements Serializable {
 ......
    private GenericAddress serviceAddress;
    private String problemDescription;
    private String referenceNumber;   
    private String[] optionExchangeList = new String[10];
        ......

jsp代码如下所示:

<INPUT TYPE="checkbox" NAME="addPrima" onclick="showHideDiv(this,'exchangeOfOption')">
   <spring:message code="serviceRequest.label.ExchangeOfOption"/><br />
   <div id="exchangeOfOption" style="display:none; margin-left : 15px;" >
    <spring:message code="serviceRequest.label.OnsiteExchangeOfDevice"/> <form:checkbox path="serviceRequest.optionExchangeList" value="Duplex"/><br />
                <spring:message code="serviceRequest.label.Drawer"/> <form:checkbox path="serviceRequest.optionExchangeList" value="Drawer"/><br />
                <spring:message code="serviceRequest.label.Feeder"/> <form:checkbox path="serviceRequest.optionExchangeList" value="Feeder"/><br />
                <spring:message code="serviceRequest.label.MaintenanceKit"/> <form:checkbox path="serviceRequest.optionExchangeList" value="Maintenance Kit"/><br />
                <spring:message code="serviceRequest.label.Other"/> <form:checkbox path="serviceRequest.optionExchangeList" value="Other"/>
            </div>  
之前它起作用了。我甚至使用optionExchangeList.toString()来查看结果。这是我检查的名字。 (这不可能吧?应该是@afaswe之类的东西)。 而现在。我必须将optionExchangeList初始化为:

private String[] optionExchangeList = new String[]{"Duplex","Drawer"};

对于Duplex和Drawer,他们在浏览器中保持检查状态。但对于休息场。它们保持未选中状态,即使我检查它们,如果我在动作方法中使用以下内容将它们打印出来,它们也不会出现在optionExchangeList中:

for (String s:serviceRequest.optionExchangeList){
 System.out.println(s+"\n");
}

无论Checkbox状态如何,列表都保持不变。

我有一个梦想吗?还是我见过鬼?我快疯了。 帮助!

1 个答案:

答案 0 :(得分:0)

当我即将使用另一种方法时,灯光照在我身上。保持简短明了。 用

之类的东西定义你的String列表
private String[] optionExchangeList = new String[]{};

没有例外。它只是有效。