叶师傅经常说不要轻看一点小问题,因为小问题可能会引发大问题。比如吃饭,你认识很简单的事,结果牙掉了。
不说了 ,上代码。
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还是有的,结果就出成一个空对象,保存进去。??????????不知道该怎么办。