<script type="text/javascript"> $(document).ready(function(){ //添加 $("#add_button").click(function() { $("#form1").submit(); }); }); </script>
<form enctype="multipart/form-data" name="form1" id="form1" method="post" action="./appPicAddOk.jspx?id=${item.id }"> <div class="common_main_mid"> <table border="1" width="100%" class="dataTable" id="mytable"> <tr> <td>栏目表</td> <td><j:select name="tablename" value="${item.tablename}" list="[{'name':'营业厅','value':'t_d_Servicenet'},{'name':'Vip贵宾厅','value':'t_d_vipgbt'},{'name':'wifi热点','value':'t_d_Wifi_Hotspot'},{'name':'维修网点','value':'t_d_Repair'}]" /></td> </tr> <tr> <td>栏目名称</td> <td> <input type="text" id="" style="width:420px;" name="columnname" value="${item.columnname }"/></td> </tr> <tr> <td>页面布局方式</td> <td> <j:select name="layoutofpage" value="${item.layoutofpage}" list="[{'name':'营业厅布局','value':'1'},{'name':'Vip贵宾厅布局','value':'2'},{'name':'wifi热点布局','value':'3'},{'name':'维修网点布局','value':'4'}]" headKey="默认布局" headValue="0" /></td> </tr> <tr> <td>距离</td> <td> <input type="text" id="" title="请严格按照“样板”填写" style="width:420px;" name="distance" value="${item.distance }"/>样板:全部,200M,500M,2000M(英文逗号,不能有空格,客户端显示逗号分割后的排序,即200在500前)</td> </tr> <tr> <td>智能分类</td> <td> <input type="text" id="" title="请严格按照“样板”填写" style="width:420px;" name="iconame" value="${item.iconame }"/>样板:全部,异地补卡,24小时营业,4G业务,促销及公告,手机以旧换新(英文逗号,不能有空格,客户端显示逗号分割后的排序,即200在500前)</td> </tr> <tr> <td>上下线</td> <td> <j:radio name="isstate" value="${item.isstate}" list="[{'name':'上线','value':'0'},{'name':'下线','value':'1'}]" defaultValue="0"/></td> </tr> <tr> <td>列表布局</td> <td> <j:radio name="listshowtype" value="${item.listshowtype}" list="[{'name':'客户端布局','value':'0'},{'name':'HTML5布局','value':'1'}]" defaultValue="0"/></td> </tr> <tr> <td>详情布局</td> <td> <j:radio name="infoshowtype" value="${item.infoshowtype}" list="[{'name':'客户端布局','value':'0'},{'name':'HTML5布局','value':'1'}]" defaultValue="0"/></td> </tr> <tr> <td>省市区</td> <td> <j:radio name="isssq" value="${item.isssq}" list="[{'name':'无','value':'0'},{'name':'省市区','value':'1'},{'name':'省市','value':'2'}]" defaultValue="0"/></td> </tr> <tr> <td>排序</td> <td> <input type="text" id="" style="width:420px;" name="issort" value="${item.issort }" onkeyup='value=value.replace(/[^\d]/g,"") ' onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"/></td> </tr> </table> <table border="1" width="100%" class="dataTable"> <tr> <td colspan="2" align="center" style="margin-left: 500px"> <input type="button" value="保存" class="jquery_button" id="add_button" name="add_button" /> <input type="button" class="jquery_button" value="返回" onClick="location.href='./listNearColumn.jspx?action=peek'" /> </td> </tr> </table> </div> </form>
/** * 添加修改 * @param request * @param response * @param multipartrequest * @return */ @RequestMapping(value = "/appPicAddOk.jspx") public String appPicAddOk(HttpServletRequest request,TDNearcolumn col) { RequestProxy proxy =RequestProxy.fromRequest(request); String id = request.getParameter("id"); try { if(!ValidateUtils.isEmpty(id)&&ValidateUtils.isNumeric(id)){ TDNearcolumn newCol = this.colService.getNearColumnById(Integer.parseInt(id)); BeanUtils.copyProperties(newCol, col); this.colService.merge(newCol); }else{ col.setAdddate(new Date()); this.colService.insert(col); } } catch (Exception e) { e.printStackTrace(); HttpUtils.setActionMessage(request, e.getMessage(),ACTION_MSG_TYPE.ERROR,true); } HttpUtils.setActionMessage(request, "保存成功!", ACTION_MSG_TYPE.SUCCESS, true); return "redirect:./listNearColumn.jspx?action=peek"; }
【有图片的时候另当别论哦】
总结:1,页面要求实体类的属性跟控件的name保持一致
2,不要放隐藏域,有这个会报400的错误,不服气走一个
3,action中实体类作为参数,接收,不要response
4,action中要copy下属性,否则修改的时候会400哦
5,最后也是最重要的:遇到困难不能萎缩,这个搞定了,以后直接通用,就不要一个个request.getparam("")
6,由于将实体类作为参数的时候,它无法识别data类型的,那么data类型的字段不能直接给属性,意思是如果属性是startdate,那么给它取名的时候取成start,然后这个参数用request.getParameter("start"),重新set到属性里面去,5说的果然是对的,果然不能萎缩,不能萎缩+1
7,如果发现得到的实体类全是null的时候,仔细想想是不是request没有配置呢?在applicationContext.xml中加入一个bean:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 以字节为单位的最大上传文件的大小 10GB -->
<property name="maxUploadSize" value="10737418240" />
<property name="uploadTempDir" value="./WEB-INF/file_upload_temp"></property>
<property name="defaultEncoding" value="ISO-8859-1"/>
</bean>