概述
<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 }" οnkeyup='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>
最后
以上就是愤怒铅笔为你收集整理的jsp将实体类作为参数传到action(或者叫controller)的全部内容,希望文章能够帮你解决jsp将实体类作为参数传到action(或者叫controller)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复