ActionForm_Struts上传

2018-08-24  本文已影响0人  Mango_lxh

1、前提要求:

  1. post请求
  2. enctype="multipart/form-data"
  3. 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空字段问题:

  1. 在表单中没有输入域
    • 采用el表达式取出值的情况
    • 采用jsp脚本取出值的情况
  2. 在表单中有输入域但不输入值
    • 采用el表达式取出值的情况
    • 采用jsp脚本取出值的情况

结论:

  1. 在表单中没有input输入域,jsp脚本接收到的值为null,el表达式接收到的值为空串
  2. 如果表单中的值,没有输入,那么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> 输出空字符串 
上一篇 下一篇

猜你喜欢

热点阅读