在实际应用中,我使用了struts2的模型驱动,下面是部分代码
public class UserTModel
{
private String userName;
private String password;
private Map roleMap=new HashMap();
省略set/get方法}
我在Action中对roleMap做了初始设置如下
private UserTModel userT=new UserTModel();/**模型驱动**/
public String initAddUser()
{
List roleList=roleService.getObjs(HqlBuilder.createQuery("Role"));
Map roleMap=new HashMap();
for(int i=0;i<roleList.size();i++)
{
Role role=(Role)roleList.get(i);
roleMap.put(role.getId(), role.getRoleTitle());
}
userT.setRoleMap(roleMap);
return "success";
}然后在页面中进行显示,结果是正常的
<s:form action="/usermanage/addUser.action" >
<table width="100%" border="1" align="center">
<tr class="tr-gray-my">
<td>
<s:label value="用户登录名" cssStyle="font-size:12px" theme="simple"/>:<s:textfield name="userT.userName" value="" theme="simple"/>
</td>
</tr>
<tr class="tr-gray-my">
<td style="font-size:12px"> <s:label value="登录密码" cssStyle="font-size:12px" theme="simple"/>:<s:password name="userT.password" value="" theme="simple"></s:password>
</td>
</tr>
<tr class="tr-gray-my">
<td style="font-size:12px">
<s:label value="权限指定" cssStyle="font-size:12px" theme="simple"/>:<s:checkboxlist name="userT.roleMap" list="userT.roleMap" listKey="key" listValue="value" value="" theme="simple"/>
</td>
</tr>
</table>
</s:form>现在的问题是,当我提交这个表单时 ,总是报
errors {userT.roleMap=[Invalid field value for field "userT.roleMap".]} ,这个如何解决啊?
public class UserTModel
{
private String userName;
private String password;
private Map roleMap=new HashMap();
省略set/get方法}
我在Action中对roleMap做了初始设置如下
private UserTModel userT=new UserTModel();/**模型驱动**/
public String initAddUser()
{
List roleList=roleService.getObjs(HqlBuilder.createQuery("Role"));
Map roleMap=new HashMap();
for(int i=0;i<roleList.size();i++)
{
Role role=(Role)roleList.get(i);
roleMap.put(role.getId(), role.getRoleTitle());
}
userT.setRoleMap(roleMap);
return "success";
}然后在页面中进行显示,结果是正常的
<s:form action="/usermanage/addUser.action" >
<table width="100%" border="1" align="center">
<tr class="tr-gray-my">
<td>
<s:label value="用户登录名" cssStyle="font-size:12px" theme="simple"/>:<s:textfield name="userT.userName" value="" theme="simple"/>
</td>
</tr>
<tr class="tr-gray-my">
<td style="font-size:12px"> <s:label value="登录密码" cssStyle="font-size:12px" theme="simple"/>:<s:password name="userT.password" value="" theme="simple"></s:password>
</td>
</tr>
<tr class="tr-gray-my">
<td style="font-size:12px">
<s:label value="权限指定" cssStyle="font-size:12px" theme="simple"/>:<s:checkboxlist name="userT.roleMap" list="userT.roleMap" listKey="key" listValue="value" value="" theme="simple"/>
</td>
</tr>
</table>
</s:form>现在的问题是,当我提交这个表单时 ,总是报
errors {userT.roleMap=[Invalid field value for field "userT.roleMap".]} ,这个如何解决啊?
不应该使用map, 应该是 数组...