我有一个html表单,其action属性指向struts action
这是一个JSP
<s:select name="roleId" id="roleId" list="roleMap" headerKey=""
headerValue="SELECT" theme="simple" value="%{roleId}" cssClass="dropdown_menu"></s:select>
它会生成类似
的html<select name="roleId" id="roleId" class="dropdown_menu">
<option value=""
>SELECT</option>
<option value="11">User</option>
<option value="9">Administrator</option>
</select>
我对getter和setter有一个动作
//
//
//
private String roleId;
//
//
public String getRoleId() {
return roleId;
}
public void setRoleRId(String roleId) {
this.roleId = roleId;
}
//
//
//
验证:
<field name="roleId">
<field-validator type="requiredstring">
<message key="USER.ROLE_ERR" />
</field-validator>
</field>
但由于某种原因,roleId属性没有设置,它总是给我一个错误,说必须指定角色。当我禁用验证操作时会收到除roleId
之外的所有属性,可能是什么问题,如何检测此类错误?,
我正在使用Struts 2.0,Windows 7,eclipse Ganimid和Tomcat 6.0
答案 0 :(得分:3)
setRoleRId
拼写错误(应为setRoleId
)
除非你在这里复制它时拼错了。
始终使用Eclipse getter / setters生成器。
而且,BTW(与你的问题无关),也许你应该更好地使用Integer作为roleId
字段,Struts2可以将查询参数转换得非常不错(与Struts1相比),而不是String。 / p>