`
谷超
  • 浏览: 166210 次
  • 性别: 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文件上传jar

    这个压缩包包含了实现Struts2文件上传所需的全部jar包,这些库文件对于理解和实现文件上传功能至关重要。 首先,我们要了解Struts2文件上传的基本流程。当用户通过表单提交包含文件输入字段的请求时,Struts2框架会...

    struts2文件上传实例

    1. **.struts2配置**:在Struts2框架中,需要在`struts.xml`配置文件中添加相应的action配置,声明文件上传的处理方法。通常,你需要设置`&lt;result&gt;`类型为`stream`,以便处理上传的文件。 2. **Action类**:创建一...

    Struts2文件上传与下载

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括处理用户表单提交、进行文件上传和下载。在Web应用中,文件上传和下载是常见的需求,例如用户上传头像、下载文档等。Struts2通过其Action类和...

    struts2文件上传

    为了学习和实践Struts2的文件上传,你可以解压这个文件,查看其中的Action类、`struts.xml`配置文件,以及可能的JSP页面,以理解整个流程。 总结来说,Struts2的文件上传涉及到拦截器配置、Action类的编写以及...

    struts2 文件上传

    Struts2 文件上传是Web开发中的一个重要功能,它允许用户通过网页上传文件到服务器。Struts2 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,提供了丰富的特性和强大的控制层功能,使得文件上传...

    struts2+jquery+ajax文件异步上传

    在文件上传场景中,Struts2主要负责接收前端发送的文件数据,并将这些数据存储到服务器的指定位置。配置Struts2的Action类和相应的XML配置文件,可以定义文件上传的处理逻辑。 接着,jQuery是一个高效、简洁的...

    Struts2文件上传源码

    6. **源码分析**: 要深入理解Struts2的文件上传机制,你需要查看Struts2的源码,特别是`org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest`和`org.apache.struts2.components.Form`这两个类。...

    struts2 文件上传 测试通过版

    总结,Struts2中的文件上传功能涉及到Action类的编写、配置文件的设定、JSP页面的构造、文件上传处理以及安全措施等多个方面。理解并熟练掌握这些知识点,能够帮助开发者在Struts2项目中有效地实现文件上传功能。

    swfuplaod+struts2实现多文件上传

    3. **创建Struts2 Action**:在Struts2框架中,创建一个处理文件上传的Action类,该类通常会包含一个`List&lt;HttpServletFileWrapper&gt;`类型的属性,用于接收上传的文件。 4. **编写Struts2配置**:在struts.xml配置...

    Struts2文件上传下载和表单重复提交问题

    文件上传功能在Struts2中通过`Struts2`提供的插件来实现,主要依赖于`Apache Commons FileUpload`库。首先,要在`struts.xml`配置文件中启用文件上传支持,设置`struts.multipart.parser`为`jakarta`或`native2...

    Struts2文件上传

    在Struts2中实现文件上传是常见的需求,比如上传头像或文档。本篇文章将详细讲解如何利用Struts2框架来实现头像上传功能。 首先,我们需要在Struts2配置文件(struts.xml)中添加相关的action配置,以便处理文件...

    struts2上传文件源代码

    4. **Commons FileUpload配置**:在Struts2配置文件中,我们需要配置Struts2与Apache Commons FileUpload的集成。这包括设置临时目录、最大文件大小等参数。 5. **文件处理**:在Action的execute()方法或其他业务...

    Struts2文件批量上传.zip

    在Struts2中,文件上传是常见的功能之一,特别是批量上传,可以处理用户一次性上传多个文件的需求。下面将详细介绍Struts2实现文件批量上传的相关知识点。 1. **Struts2的ActionContext与FileUpload插件** Struts2...

    Struts2 经典flash上传文件

    在本案例中,我们将探讨如何使用Struts2与Flash技术相结合实现文件的上传,并且展示上传进度条,提高用户体验。 1. **Struts2文件上传基础** - Struts2提供了一个名为`CommonsFileUploadInterceptor`的拦截器,它...

    Struts2实现文件上传

    Struts2是一个强大的MVC框架,广泛应用于Java Web开发中,尤其在处理用户表单提交和文件上传等交互场景中表现出色。在这个“Struts2实现文件上传”的主题中,我们将深入探讨如何利用Struts2框架来实现在Web应用中的...

    struts2文件上传,文件大小设置

    在Struts2中,文件上传是通过`&lt;s:file&gt;`标签实现的,这个标签会创建一个`File`对象,与用户选择的文件对应。同时,Struts2提供了一个`FileUploadInterceptor`拦截器,用于处理文件上传的相关逻辑,包括验证文件大小...

    struts2中的文件上传和下载示例

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括文件上传和下载。在Struts2中处理文件上传和下载是常见的需求,对于构建交互式的Web应用来说至关重要。以下将详细介绍Struts2中如何实现这两个...

Global site tag (gtag.js) - Google Analytics