文件上传下载时,在form表单中设置属性enctype=“multipart/form-data”的情况下,如何获取表单提交的值?
来源:互联网 发布:电陶炉和电磁炉 知乎 编辑:程序博客网 时间:2024/05/19 21:58
一、问题描述
文件上传下载时,在form表单中设置属性enctype=“multipart/form-data”的情况下,如何获取表单提交的有关用户信息的值?(比如:textfield、radio等属性中的值)
二、解决方法
1、情况一:没有对user对象进行封装
方法:可在form表单对应的action(xxx.java)中定义相应的属性,实现对应的set和get方法,然后在显示页面中使用<s:property value="name"/>
语句即可获得表单中的值。
例:
uploadFile.jsp:页面中定义了textfield属性<s:textfield name="name" label="姓名" size="20"/>
,在对应的action中定义相应的属性
<s:form action="docUpload" method="post" enctype="multipart/form-data"> <s:textfield name="name" label="姓名" size="20"/> <s:file name="upload" label="选择文档" size="20"/> <s:file name="upload" label="选择文档" size="20"/> <s:submit value="确认上传" align="center"/></s:form>
DocUploadAction.java:对应上面form表单的action,定义了name属性
public class DocUploadAction extends ActionSupport { private String name; private File[] upload; private String[] uploadContentType; private String[] uploadFileName; private String savePath; public String getName() { return name; } public void setName(String name) { this.name = name; } .... ....省略其他代码
showFil.jsp:使用<s:property value="name"/>
语句即可获得值
<td align="center"><s:property value="name"/></td>
2、情况二:为了实现更好的封装,可将用户信息封装到User对象中。
方法:可在form表单中的name值均采用“user.属性名”,对应的action(xxx.java)中定义user对象,实现对应的set和get方法,然后在显示页面中使用<s:property value="user.name"/>
语句即可获得表单中的值。
例:
uploadFile.jsp:<s:textfield name="user.name" label="姓名" size="20"/>
注:name的值都要用user对象.属性名
<s:form action="user" method="post" enctype="multipart/form-data"> <s:textfield name="user.name" label="姓名" size="20"/> <s:file name="upload" label="照片" size="20"/> <s:textfield name="user.age" label="年龄" size="20"/> <s:radio list="#{'1':'男','2':'女' }" name="user.sex" value="1" label="性别" cssStyle="border:0px;"/> <s:textfield name="user.address" label="籍贯" size="20"/> <s:submit value="确定录入" align="center"/></s:form>
DocUploadAction.java:创建User对象,并实现set和get方法
public class UserAction extends ActionSupport { private static final int BUFFER_SIZE=40*40; private File upload; //封装上传文件域的属性 private String uploadContentType; //封装上传文件的类型 private String uploadFileName; //封装上传文件名 private String savePath; //封装上传文件的保存路径 private User user; //创建user对象 public User getUser() { return user; } public void setUser(User user) { this.user = user; }
showFil.jsp:使用<s:property value="user.name"/>
语句即可获得值
<td align="center"><s:property value="user.name"/></td>
转载请注明!谢谢!
- 文件上传下载时,在form表单中设置属性enctype=“multipart/form-data”的情况下,如何获取表单提交的值?
- 表单中存在上传文件时设置enctype="multipart/form-data"的问题
- 表单form 中Enctype=multipart/form-data 的作用
- asp中enctype="multipart/form-data"获取Form表单的值
- 提交设置为enctype="multipart/form-data"的表单时中文乱码解决
- enctype="multipart/form-data" 文件上传,获取form 表单参数的问题
- 含有文件的表单处理(ENCTYPE="multipart/form-data")
- 表单中enctype="multipart/form-data"的意思
- 对于form enctype= multipart/form-data 二进制流上传文件,服务器端获取不到表单中其他数据的解决办法。
- 根据在Struts 1中源碼查找文件上傳的控制流程,当FORM中设定enctype=multipart/form-data的情况下,不能获得表单的值的解決
- 表单form的enctype="multipart/form-data"使用体会
- 表单form的enctype="multipart/form-data"
- 表单form的enctype="multipart/form-data"使用体会
- 表单form的enctype="multipart/form-data"使用体会
- 表单form的enctype="multipart/form-data"使用体会
- 表单form的enctype="multipart/form-data"使用体会
- form表单的Enctype=multipart/form-data
- 为什么上传文件的表单里面要加一个属性ENCTYPE=MULTIPART/FORM-DATA?
- 外贸电商:除了paypal,这些支付方式也能帮到你
- 远离炒作:正视比特币区块链的四大问题
- iOS巅峰之CocoaPods第三方库的管理找不到.h文件
- 加载xib文件、awakeFromNib方法
- 简单的快速排序
- 文件上传下载时,在form表单中设置属性enctype=“multipart/form-data”的情况下,如何获取表单提交的值?
- java面向对象
- jQuery 遍历
- 移除UITableView的tableHeaderView
- 通过BaseReponse由后台向前端返回信息
- 300. Longest Increasing Subsequence
- AdminLTE的使用
- 如何在VS2017中安装EASYX
- Xposed 摘要