`
谷超
  • 浏览: 163234 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2 文件上传与接收页面参数

 
阅读更多

文件上传是网站中经常使用的。

文件上传的API也比较多,本人之前用过JSP smart upload的API,最有名的文件上传的API当属apache

commons-fileupload,struts2中文件上传就更简单了,下面是一个Struts2简单的文件上传的例子。

action类

 

private String username;
	private String password;
	private String secret;
	//上传的文件对象
	private File uploadFile;
	//文件名称
	private String uploadFileFileName;
	//文件类型
	private String uploadFileContentType;
	
	//性别
	private String sex;
	//爱好
	private String[] hobby;
	//出生国家
	private String country;
	//国籍
	private String[] guoji;
	private String desc;
	
	
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String submit(){	
		List<String> hobbys = new ArrayList<String>();
		Collections.addAll(hobbys, hobby);
		
		List<String> guojis = new ArrayList<String>();
		Collections.addAll(guojis, guoji);
		System.out.println("username="+username+",password="+password+",secret="+secret+",file="+uploadFile+",sex="+sex+",hobby="+hobbys+",country="+country+",guoji="+guojis+",desc="+desc);
		System.out.println("filename="+uploadFileFileName+",content type="+uploadFileContentType+",length="+uploadFile.length());
		return SUCCESS;
	}

        setter and getter method

 

struts.xml,action配置没有什么特殊之处,文件上传的action要使用默认的拦截器栈,默认的拦截器栈

中有文件上传的拦截器

 

<!-- 允许上传的最大文件大小 -->
<constant name="struts.multipart.maxSize" value="10485760"></constant>
<package name="Struts2_ReceiveWebElement" namespace="/" extends="struts-default">

        <action name="index" class="com.guchao.struts2.action.TestAction" method="submit">
            <result>/hello.jsp</result>
        </action>
    </package>

JSP代码

 

<form action="index!submit" method="post" enctype="multipart/form-data">
    username: <input type="text" name="username"> <br>
    password: <input type="password" name="password"> <br>
    
    <input type="hidden" name="secret" value="this is a secret!">
   	file:<input type="file" name="uploadFile"><br>
    sex:<input type="radio" name="sex" value="Male">M &nbsp;<input type="radio" name="sex" value="FMale">F<br>
    hobby:<input type="checkbox" name="hobby" value="Music" checked="checked">Music &nbsp; <input type="checkbox" name="hobby" value="Art">Art &nbsp;<input type="checkbox" name="hobby" value="Dance">Dance<br>
    
    birthday country:<select name="country">
    			<option value="China" selected="selected">China</option>
    			<option value="USA">USA</option>
    			<option value="Canada">Canada</option>
    			<option value="Japan">Japan</option>
    		</select><br>
    guoji:<select name="guoji" multiple="multiple">
    			<option value="China" selected="selected">China</option>
    			<option value="USA">USA</option>
    			<option value="Canada">Canada</option>
    			<option value="Japan">Japan</option>
    	  </select><br>
    desc:<textarea rows="20" cols="20" name="desc"></textarea><br>
    <input type="button" name="btn" value="submit" onclick="javascript:document.forms[0].submit();">
    </form>

 

 文件上传页面需要注意的一点是表单form要设置为enctype="multipart/form-data",默认

enctype="application/x-www-form-urlencoded"

Struts2之所以能够如此简单地进行文件上传,是因为有文件上传拦截器FileUploadInterceptor,action

中的属性uploadFileFileName和uploadFileContentType,是文件上传拦截器自动完成的赋值。格式为File对象的名称+FileName 和 File对象的名称+ContentType。

此外还可以看到表单中的参数和action属性的映射,单选按钮对应String,多选按钮对应String[],单选

的下拉列表对应String,多选的下拉列表对应String[]等。

 

 

分享到:
评论

相关推荐

    Struts2上传文件出错

    -- 系统常量定义,定义上传文件字符集编码 --&gt; &lt;constant name="struts.i18n.encoding" value="UTF-8"&gt; &lt;!-- 系统常量定义,定义上传文件临时存放路径 --&gt; &lt;constant name="struts.multipart.saveDir" ...

    JAVA SSH青协志愿服务管理系统源码

    Struts 控制器(负责接收据+处理数据+响应结果(重定向+转)) Spring 工厂类 Hibernate 持久性访问层 *.hbm.xml(类—-表,属性–字段) 2注解 项目包 1,action 控制器 2,dao 操作数据库— 3,model 实体类模型 4...

    JAVA SSH青协志愿服务管理系统源码.rar

    Struts 控制器(负责接收据+处理数据+响应结果(重定向+转)) Spring 工厂类 Hibernate 持久性访问层 *.hbm.xml(类—-表,属性–字段) 2注解 项目包 1,action 控制器 2,dao 操作数据库— 3,model 实体类模型 4...

    ssh(structs,spring,hibernate)框架中的上传下载

    WEB-INF下的applicationContext.xml为Spring的配置文件,struts-config.xml为Struts的配置文件,file-upload.jsp为文件上传页面,file-list.jsp为文件列表页面。  本文后面的章节将从数据持久层->业务层->Web层的...

    JSP网络编程从基础到实践的实例代码

    实例39 用jspSmartUpload组件实现文件上传 实例40 应用jspSmartUpload组件进行较复杂的表单处理 实例41 用jspSmartUpload组件来实现文件下载 实例42 分页读取文件内容 第7章 在JSP中使用数据库 实例43 顺序查询...

    jsp网络编程从基础到实践

    实例39 用jspSmartUpload组件实现文件上传 实例40 应用jspSmartUpload组件进行较复杂的表单处理 实例41 用jspSmartUpload组件来实现文件下载 实例42 分页读取文件内容 第7章 在JSP中使用数据库 实例43 顺序查询...

    JSP网络编程从基础到实践 实例代码

    实例39 用jspSmartUpload组件实现文件上传 实例40 应用jspSmartUpload组件进行较复杂的表单处理 实例41 用jspSmartUpload组件来实现文件下载 实例42 分页读取文件内容 第7章 在JSP中使用数据库 实例43 顺序查询...

    李兴华Java Web开发实战经典(高清版) Part2

    第8章 文件上传 8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 ...

    JSP网络编程从基础到实践

    实例34 随机读取文件程序示例 实例35 故事接龙 实例36 文件上传 实例37 在浏览器中打开文件 实例38 文件下载 实例39 用jspSmartUpload组件实现文件上传 实例40 应用jspSmartUpload组件进行...

    java web 视频、电子书、源码(李兴华老师出版)

    0208_文件上传 0300_第三部分:WEB高级开发 0309_Servlet程序开发 0310_表达式语言 0311_Tomcat数据源 0312_JSP标签编程 0313_JSP标准标签库(JSTL) 0314_AJAX开发技术 0400_第四部分:框架开发 0415_...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    第8章 文件上传 8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 ...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    第8章 文件上传 8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 ...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    第8章 文件上传 8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 ...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    第8章 文件上传 8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 ...

    JAVA上百实例源码以及开源项目

     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    第8章 文件上传 8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 ...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    第8章 文件上传 8.1、smartupload上传组件 8.1.1、上传单个文件 8.1.2、混合表单 8.1.3、为上传文件自动命名 8.1.4、批量上传 8.2、FileUpload 8.2.1、使用FileUpload接收上传内容 8.2.2、保存上传内容 ...

    JAVA上百实例源码以及开源项目源代码

     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...

Global site tag (gtag.js) - Google Analytics