我让复选框正常工作,但我不记得我对我的代码做了哪些修改。它永远不会再工作了。它一直在说:
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状态如何,列表都保持不变。
我有一个梦想吗?还是我见过鬼?我快疯了。 帮助!
答案 0 :(得分:0)
当我即将使用另一种方法时,灯光照在我身上。保持简短明了。 用
之类的东西定义你的String列表private String[] optionExchangeList = new String[]{};
没有例外。它只是有效。