我有一个 html 表单,其操作属性指向 struts 操作
这是一个 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
最佳答案
setRoleRId
拼写错误(应为 setRoleId
)
除非您在此处复制时拼写错误。
始终使用 Eclipse getter/setter 生成器。
而且,顺便说一句(与您的问题无关),也许您应该更好地为 roleId
字段使用 Integer,Struts2 可以相当不错地将查询参数(与 Struts1 相比)转换为其他类型字符串。
关于java - 从 jsp 设置 Struts2 Action 成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2737901/