日期:2014-05-18  浏览次数:20809 次

request.getParameter("abc")从表单得值出了问题
什么使用request.getParameter("abcd")还是request.getParameterValues("abcd")获取struts2表单中checkbox的值都为true呢

<s:form action="accredit" method="post" theme="simple">
<table width="429" align="center">
<tr>
<td align="left">人员授权</td>
<td align="right"><s:submit value="确定" cssStyle="width:78" />
</td>
<td align="right"><s:reset value="取消" cssStyle="width:78" />
</td>
</tr>
</table>
<br />
<table width="429" height="150" align="center" border="1">
<tr>
<td width="32">
</td>
<td width="139" >角色中文名</td>
<td width="145" >角色英文名</td>
<td width="93" >角色备注</td>
</tr>
<tr>
<td><s:checkbox name="abcd"  value="1" id="abcd"/>
</td>
<td>管理员</td>
<td>ROLE_ADMIN</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><s:checkbox name="abcd" value="2" />
</td>
<td>高级用户</td>
<td>ROLE_SENIOR</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><s:checkbox name="abcd" value="3" />
</td>
<td>普通用户</td>
<td>ROLE_NORMAL</td>
<td>&nbsp;</td>
</tr>
</table>
</s:form>

------解决方案--------------------
request.getParameterValues("abcd") 获取所有name= "abcd"的值 返回的是数组。
------解决方案--------------------
用struts2你为什么要用request来获取表单参数呢?它可以自动封装成对象的啊(前提是表单的名称和对象的属性名保持一致)
request.getParameter("abcd")获取表单参数,返回类型String
request.getParameterValues("abcd") 返回String[]
可见第一个是获取一个值,而第二个是获取一组值!
------解决方案--------------------
用struts2你为什么要用request来获取表单参数呢?它可以自动封装成对象的啊(前提是表单的名称和对象的属性名保持一致)
------解决方案--------------------
request.getParameterValues("abcd");得到的当然是true,表单提交时表单中的复选框是要在复选框选中时才会提交的。你用request.getParameterValues("abcd")得到的都是提交的数据自然都是选中的复选框了。