getParameterValues只能取到第一个

来源:互联网 发布:linux怎么查看root密码 编辑:程序博客网 时间:2024/03/29 19:52

叶师傅经常说不要轻看一点小问题,因为小问题可能会引发大问题。比如吃饭,你认识很简单的事,结果牙掉了。
不说了 ,上代码。

public static List<SupportSpecTransfersNe>  postTransfersList(HttpServletRequest request,HttpServletResponse response,String balkNo,Date addTime){            List<SupportSpecTransfersNe> list=new ArrayList<SupportSpecTransfersNe>();            try{                **String[] tagNames=request.getParameterValues("tag");**                String[] stlNumNames=request.getParameterValues("stlNum");                String[] circuitTypeIdNames=request.getParameterValues("circuitTypeId");                String[] aEquipFacIdNames=request.getParameterValues("aEquipFacId");                String[] aNeNames=request.getParameterValues("aNeName");                String[] aDistrictIdNames=request.getParameterValues("aDistrictId");                String[] aSubNames=request.getParameterValues("aSubName");                String[] aBowlNames=request.getParameterValues("aBowl");                String[] aPortNames=request.getParameterValues("aPort");                String[] aSloTimeNames=request.getParameterValues("aSloTime");                String[] zEquipFacIdNames =request.getParameterValues("zEquipFacId");                String[] zNeNames =request.getParameterValues("zNeName");                String[] zDistrictIdNames =request.getParameterValues("zDistrictId");                String[] zSubNames =request.getParameterValues("zSubName");                String[] zBowlNames =request.getParameterValues("zBowl");                String[] zPortNames =request.getParameterValues("zPort");                String[] zSloTimeNames =request.getParameterValues("zSloTime");                //如果专线号是必选项还好                if(tagNames!=null && tagNames.length>0){                    for(int i=0;i<tagNames.length;i++){                        SupportSpecTransfersNe ne=new SupportSpecTransfersNe();                        ne.setBalkNo(balkNo);                        ne.setStlNum(stlNumNames[i]);                        ne.setCircuitTypeId(Integer.parseInt(circuitTypeIdNames[i]));                        ne.setaEquipFacId(Integer.parseInt(aEquipFacIdNames[i]));                        ne.setaNeName(aNeNames[i]);                        ne.setaDistrictId(Integer.parseInt(aDistrictIdNames[i]));                        ne.setaSubName(aSubNames[i]);                        ne.setaBowl(aBowlNames[i]);                        ne.setaPort(aPortNames[i]);                        ne.setaSloTime(aSloTimeNames[i]);                        ne.setzEquipFacId(Integer.parseInt(zEquipFacIdNames[i]));                        ne.setzNeName(zNeNames[i]);                        ne.setzDistrictId(Integer.parseInt(zDistrictIdNames[i]));                        ne.setzSubName(zSubNames[i]);                        ne.setzBowl(zBowlNames[i]);                        ne.setzPort(zPortNames[i]);                        ne.setzSloTime(zSloTimeNames[i]);                        ne.setOperaTime(addTime);                        list.add(ne);                    }                }            }catch(Exception e){                log.error(balkNo+"获取传输故障后处理信息错误",e);                return new ArrayList<SupportSpecTransfersNe>();            }            return list;        }

就是死活取不到前台传过来的值
request.getParameterValues(“aPort”)
按理说不应该呀 ,这是标准得取html标签名称是一样的值 。
于是我看了一下前台

function addXinYuan(){    var row=transfersInfo1.insertRow(transfersInfo1.rows.length);     var col2=row.insertCell(0);     var idnum=transfersInfo1.rows.length+1;      col2.innerHTML= "“;

一开始是觉得应该取不到innerHTML里面的值 。

后来也查了这么多的网上写的,说只要写在form里应该后面就能取到。

问了一下叶师傅。

他用几秒钟钟看了一下jsp页面说,这应该就是html页面的问题。

本来是:

<tiles:insert definition="baseDef" flush="true"><tiles:put name="bodyInput" type="string">  <form name='form1' method='post'>

修改后:

<form name='form1' method='post'><tiles:insert definition="baseDef" flush="true"><tiles:put name="bodyInput" type="string">  

叶师傅说 标准的 form应该是放在最外面,只能form包table ,不能table包form,所以有些值 传不过去也是应该的。

为什么我看不出来的问题,去请教叶师傅就是人家一分钟就解决了呢?朵朵说这很正常。

但是看我第一段代码,这样循环取前台的数据有一个问题,因为必填项,这就是我说为什么加一个String[] tagNames=request.getParameterValues(“tag”); tag这是一个隐藏域,用来知道前面具体传过来多少条记录。
可是点如果前台传过来一个空纪录,可是tag还是有的,结果就出成一个空对象,保存进去。??????????不知道该怎么办。

0 0
原创粉丝点击