1.搭建简单的struts2框架
--->src的下struts.xml
<struts> <!-- 配置动态方法调用是否开启常量默认是关闭的,需要开启--> <constant name="struts.enable.DynamicMethodInvocation" value="false"></constant> <package name="company" extends="struts-default" > <!-- 动态方法调用方式2:通配符方式使用{1} 取出第一个星号通配的内容--> <action name="test_*" class="com.test.action.formAction" method="{1}" > </action> </package> </struts>
--->根目录下struts.xml
--->jar包导入
--->web.xml配置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>TestForm</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
2.前台页面:Hellow.jsp
<form enctype="multipart/form-data" method="POST" action="${pageContext.request.contextPath}/formAction/test_testFile.action" id="uploadForm"> <table> <tr> <td> <input type="file" style="width:240px;" name="file"/> </td> <td id="fileNameError" class="error"></td> </tr> <tr> <td> <input id="submitBtn1" type="submit" value="确定" style="padding:3px 25px;"/> </td> </tr> </table> </form>
3.action配置
package com.test.action; import java.io.File; import com.opensymphony.xwork2.ActionSupport; public class formAction extends ActionSupport { private static final long serialVersionUID = -2757669937510150666L; private File file; public File getFile() { return file; } public void setFile(File file) { this.file = file; } private String fileContentType; private String fileFileName; public String getFileContentType() { return fileContentType; } public void setFileContentType(String fileContentType) { this.fileContentType = fileContentType; } public String getFileFileName() { return fileFileName; } public void setFileFileName(String fileFileName) { this.fileFileName = fileFileName; } private String number; public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public void testNumber(){ System.out.println(number.toString()); } public void testFile(){ System.out.println(this.getFileFileName()); System.out.println(file.getName()); } }
4.项目目录
PS:表单为file类型的时候,上传到后端,必须要有3个参数,参数在<form>标签下<input name = " ?">中的name值一致,对应在action中是private File ?;private String ?ContentType ; private String ?FileName ;