这是addVariable.jsp
<h3>Add Process Variable</h3>
<br>
<form:form action="/cpms/vrms/add" commandName="processVariable">
<table>
<tr>
<td>Variable Name </td>
<td><form:input path="variableName" /></td>
</tr>
<tr>
<td>Symbol </td>
<td><form:input path="symbol" /></td>
</tr>
<tr>
<td>Description </td>
<td><form:textarea path="variableDescription" rows="3" cols="20" /></td>
</tr>
<tr>
<td>Unit</td>
<td><form:input path="unit" /></td>
</tr>
<tr>
<td>Type</td>
<td>
<form:radiobuttons path="dataType" items="${dataTypes}"/>
</td>
</tr>
<tr>
<td>Source</td>
<td><form:radiobuttons path="source" items="${sourceList}"/></td>
</tr>
<tr>
<td>Is Input?</td>
<td>
<form:radiobuttons path="input" value="true" />
<form:radiobuttons path="input" value="false" />
</td>
</tr>
<tr>
<td>Is Constant?</td>
<td>
<form:radiobuttons path="constant" value="true"/> Yes
<form:radiobuttons path="constant" value="false"/> No
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Add Variable" />
</td>
</tr>
</table>
VariableManagementController
public class VariableManagementController {
@Autowired
private IVariableManagementService variableManagementService;
private static final String ADD_FORM_PATH="cpms/vrms/addVariable";
@RequestMapping(value="/cpms/vrms/add/form",method=RequestMethod.GET)
String addProcessVariable(Model model){
DATA_TYPE[] dataTypes = DATA_TYPE.values();
SOURCE[] sourceList = SOURCE.values();
model.addAttribute("dataTypes",dataTypes);
model.addAttribute("sourceList",sourceList);
model.addAttribute("processVariable", new ProcessVariable());
return ADD_FORM_PATH;
}
ProcessVariable bean
public class ProcessVariable {
private String variableId;
private String variableName;
private String variableDescription;
private String symbol;
private String unit;
private DATA_TYPE dataType;
private SOURCE source;
private boolean constant; //if isConstant=true then isOutput must be false
private boolean input;
//getters and setters
当我点击目标为http://localhost:9090/wcc/cpms/vrms/add/form的链接时,我会遇到以下异常。
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/cpms/vrms/addVariable.jsp at line 46
43: <tr>
44: <td>Is Input?</td>
45: <td>
46: <form:radiobuttons path="input" value="true" />
47: <form:radiobuttons path="input" value="false" />
48: </td>
49: </tr>
.
.
.
root cause
java.lang.IllegalArgumentException: Attribute 'items' is required and must be a Collection, an Array or a Map
我不想在控制器内为我的模型添加一个布尔值的属性。它应该像这样工作。我正在使用spring mvc 3.1.2
我不这么认为使用items = $ {inputTypes}是强制性的。我可以简单地使用硬编码值作为我的布尔值
答案 0 :(得分:0)
如果您没有使用列表,请使用
<form:radiobutton />
eg.
<form:radiobutton path="sex" value="M"/>Male
<form:radiobutton path="sex" value="F"/>Female
这是一篇解释类似内容的帖子:
http://www.mkyong.com/spring-mvc/spring-mvc-radiobutton-and-radiobuttons-example/