form表单提交action后,接收到的值为null.

Zerlinda_Li 2014-08-13 11:53:00
我是直接采用属性封装:
Action中定义各个的属性要与对应form中的参数同名,并提供GET/SET方法;
这是jsp页面的代码
	<!-- 导入数据面板 -->
<div id="dlg2" class="easyui-dialog" style="width:400px;height:180px;padding:10px 20px"
closed="true" buttons="#dlg-buttons2">
<form id="uploadForm" action="<%=contextPath%>/base/cmorganization!export.gx" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>下载模版:</td>
<td><a href="javascript:void(0)" class="easyui-linkbutton" onclick="downloadTemplate()">导入模版</a></td>
</tr>
<tr>
<td>上传文件:</td>
<td><input type="text" name=cmorganizationUploadFile></td><!--
<td><input type="text" name=cmorganizationUploadFile></td>-->
</tr>
</table>
</form>
</div>

<div id="dlg-buttons2">
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-ok" onclick="uploadFile()">上传</a>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg2').dialog('close')">关闭</a>
</div>

这是提交方法
	// 上传
var uploadFile = function(){
$.post(gx.contextPath + '/base/cmorganization!upload.gx',gx.serializeObject($('uploadForm')),function(result) {
if (result.success) {
var result=eval('('+result+')');
if(result.errorMsg){
$.messager.alert("系统提示",result.errorMsg);
}else{
$.messager.alert("系统提示","上传成功");
$("#dlg2").dialog("close");
$("#dg").datagrid("reload");
}
}
}, 'json');
}


这是action中的代码
	private File cmorganizationUploadFile; // 导入文件

public File getCmorganizationUploadFile() {
return cmorganizationUploadFile;
}


public void setCmorganizationUploadFile(File cmorganizationUploadFile) {
this.cmorganizationUploadFile = cmorganizationUploadFile;
}
public String upload() throws Exception {
System.out.println("进入action了!");
System.out.println("=============="+cmorganizationUploadFile);
/*POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(cmorganizationUploadFile));
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet hssfSheet = wb.getSheetAt(0);
if (hssfSheet != null) {
for(int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
HSSFRow hssfRow = hssfSheet.getRow(rowNum);
if(hssfRow == null) {
continue;
}
System.out.println(ExcelUtil.formatCell(hssfRow.getCell(0)));
TCrCmOrganization cmOrganization = new TCrCmOrganization();
cmOrganization.setCmName(ExcelUtil.formatCell(hssfRow.getCell(0)));
cmOrganization.setCmTimeks(DateUtil.stringToDate(ExcelUtil.formatCell(hssfRow.getCell(1))));
cmOrganization.setCmTimejs(DateUtil.stringToDate(ExcelUtil.formatCell(hssfRow.getCell(2))));
cmOrganization.setCmOrganizer(ExcelUtil.formatCell(hssfRow.getCell(3)));
cmOrganization.setCmCapacity(ExcelUtil.formatCell(hssfRow.getCell(4)));
cmOrganization.setCmContent(ExcelUtil.formatCell(hssfRow.getCell(5)));
cmOrganization.setCmHost(ExcelUtil.formatCell(hssfRow.getCell(6)));
cmOrganization.setCmRecordpeople(ExcelUtil.formatCell(hssfRow.getCell(7)));
cmOrganization.setCmSummaryLevel(ExcelUtil.formatCell(hssfRow.getCell(8)));
service.save(cmOrganization);
}
}*/
JSONObject result=new JSONObject();
result.put("success", "true");
ResponseUtil.write(ServletActionContext.getResponse(), result);
return null;
}

后台打印结果
进入action了!
==============null
...全文
2345 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiaowenmessi 2014-08-13
  • 打赏
  • 举报
回复
<input type="file" enctype="multipart/form-data">
snailjumpjump 2014-08-13
  • 打赏
  • 举报
回复
你的form表单里加了这个enctype="multipart/form-data",出了type=file类型的可以直接在Action里面接收,其他的好像要判断一下的,而且上传文件不是应该是<input type="file"/>吗?你这里怎么是个type="text'
小灯光环 2014-08-13
  • 打赏
  • 举报
回复
文件上传不用form的话,就得借助插件了,你这种写法是不行的,serializeObject应该没法序列化file。
Zerlinda_Li 2014-08-13
  • 打赏
  • 举报
回复
	private String cmorganizationUploadFile; // 导入文件

	public String getCmorganizationUploadFile() {
		return cmorganizationUploadFile;
	}


	public void setCmorganizationUploadFile(String cmorganizationUploadFile) {
		this.cmorganizationUploadFile = cmorganizationUploadFile;
	}
这个
Zerlinda_Li 2014-08-13
  • 打赏
  • 举报
回复
本来是这样的
<td><input type="file" name=cmorganizationUploadFile></td>
但是传过去报空指针异常,所以我想是不是file不能用,就换成了text,但还是null.

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧