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

小问题:动态表单取值问题。-----在线,解决给分
页面用复选框(checkbox)来取得一组值,采用DynaValidatorForm动态表单,在struts-config.xml有如下语句:
<form-bean   name= "empForm "   type= "org.apache.struts.validator.DynaValidatorForm ">
……
<form-property   name= "del "   type= "java.lang.String[] "   />
……
</form-bean>

请问如何取得del的值?
我用如下方法无法取的:
String[]   id=(String[])empForm.get( "del ");
String[]   id=empForm.getStrings( "del ");         //这俩语句所得id.length为0
不明所以,望指教:)

------解决方案--------------------
问一下你的JSP页面里是如何填写数据的.
------解决方案--------------------
基本上是以下这个样子
<form ……>
<input type= "checkbox " name= "del " value= "1 "> 1
<input type= "checkbox " name= "del " value= "2 "> 2
<input type= "checkbox " name= "del " value= "3 "> 3
<input type= "checkbox " name= "selectAll " value= " " onclick= "xxx "> 全选 <a href= "/process.do?method=delAllEmp " onClick= "javascript:mit() "> 删除选中的记录 </a>
</form>
------解决方案--------------------
type= "java.lang.String[] "
这样也可以吗?java.lang下面有String[]?
------解决方案--------------------
用String checkbox[] = request.getParameterValues( "checkbox ");试试!
------解决方案--------------------
这个最好在前台连接数据传递到后台处理:
var arr=new array();
arr=document.getElementByTagName( 'checkbox ')
------解决方案--------------------
" <a href= "/process.do?method=delAllEmp " onClick= "javascript:mit() "> 删除选中的记录 </a> "
只是一个单纯的链接.并没有将表单提交到action当中.所以得到的length自然就0.可以在onclick时将表单提交一下.或直接用submit控件.
------解决方案--------------------
学习
------解决方案--------------------
貌似前台页面写的有点问题,改了一下,试试吧,^_^
<form ...>
<input type= "checkbox " name= "del " value= "1 "> 1
<input type= "checkbox " name= "del " value= "2 "> 2
<input type= "checkbox " name= "del " value= "3 "> 3
<input type= "checkbox " name= "selectAll " value= " " onclick= "xxx "> 全选 <a href= "# " onClick= "javascript:mit() "> 删除选中的记录 </a>
</form>

function mit()
{
document.forms[0].action = " <%=request.getContextPath()%> /process.do?method=delAllEmp ";
document.forms[0].submit();
return true;
}
------解决方案--------------------
用String checkbox[] = request.getParameterValues( "checkbox ");试试!

而且在后台是不能用checkbox.length或checkbox是否为空来判断是否取到值的

可以这么来
if(request.getParameterValues( "checkShipLine ") != null) {
……

}