1、前提要求:
- post请求
- enctype="multipart/form-data"
- type="file"
request里存放的是这个文件的字节流(字节数组对象),一看是上传,struts就会创建一个实现FormFile接口类的对象,把字节流封装到实现FormFile接口类的对象里,
把地址(封装实现formfile接口类的对象)设置给表单bean的myfile
过程:struts创建ActionForm对象,自动收集表单中的title和myfile属性值(myfile类型是FormFile接口),然后通过该对象把文件的title值和字节流传给Action
2、上传文件大小的设置
在struts-config.xml中,采用controller标签配置上传参数,上传文件最大10M,默认250M
<controller maxFileSize="10M"/>
3、ActionForm空字段问题:
- 在表单中没有输入域
- 采用el表达式取出值的情况
- 采用jsp脚本取出值的情况
- 在表单中有输入域但不输入值
- 采用el表达式取出值的情况
- 采用jsp脚本取出值的情况
结论:
- 在表单中没有input输入域,jsp脚本接收到的值为null,el表达式接收到的值为空串
- 如果表单中的值,没有输入,那么jsp脚本和el表达式接收到的值都为空串
说明:在表单中没有输入域password,即用户不用输入password
<li>空字段测试</li><br>
<form action="blankfield.do" method="post">
姓名:<input type="text" name="username"><br>
<input type="submit" value="提交">
</form>
<%
BlankFieldActionForm form = (BlankFieldActionForm)request.getAttribute("blankFieldForm");
%>
<li>jsp脚本</li><br>
姓名:<%=form.getUsername() %><br>
密码:<%=form.getPassword() %><br> //输出null
<p>
<li>el表达式</li><br>
姓名:${blankFieldForm.username }<br>
密码:${blankFieldForm.password }<br> 输出空字符串
网友评论