struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts> <constant name="struts.custom.il8n.resources" value="message"></constant> <!-- 定义国际化方式,将struts2内置的验证提示方式覆盖掉 “message”为自己创建的文件,且必须在src根目录下 -->
<constant name="struts.i18n.encoding" value="gbk"></constant>
<constant name="struts.multipart.saveDir" value="f:\"></constant> <package name="struts2" extends="struts-default">
<interceptors> <!-- 拦截器根节点 -->
<interceptor name="auth" class="interceptor.AuthInterceptor"></interceptor> <!-- 定义一个拦截器 -->
<interceptor name="MethodFilterInterceptor" class="interceptor.MethodFilterInteceptor"></interceptor> <!-- 对指定方法进行拦截 -->
<interceptor-stack name="default"> <!-- 定义一个拦截器栈 -->
<interceptor-ref name="auth"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref> <!-- 引用继承下来的默认拦截器 -->
</interceptor-stack>
</interceptors>
<!-- <default-interceptor-ref name="default"> --> <!-- 定义一个默认的拦截器引用 -->
<!--</default-interceptor-ref>-->
<global-results> <!-- 定义一个全局的结果 -->
<result name="login" type="redirect">/login.jsp</result>
</global-results>
<action name="login" class="com.action.LoginAction">
<result name="success">/register2.jsp</result>
<result name="input">/login.jsp</result>
<result name="false">/login.jsp</result>
</action>
<action name="pointConvert" class="com.action.PointAction">
<result name="success">/output.jsp</result>
</action>
<action name="register" class="com.action.RegisterAction" method="reg"> <!-- Action会调用“reg”这个方法 -->
<result name="success">/success.jsp</result>
<result name="input">/register2.jsp</result>
<interceptor-ref name="MethodFilterInterceptor">
<param name="includeMethods">text,execute</param> <!-- 对指定方法进行拦截 -->
<param name="excludeMethods">execute</param> <!-- 对指定方法不拦截 -->
</interceptor-ref>
<interceptor-ref name="auth"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref> <!-- 引用继承下来的默认拦截器 -->
<!--
<interceptor-ref name="auth"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
-->
</action>
<action name="upload" class="com.action.UploadAction">
<result name="success">/uploadfile/result.jsp</result>
<result name="input">/uploadfile/upload.jsp</result>
<interceptor-ref name="fileUpload">
<param name="maximumSize">409600</param>
<param name="allowedTypes">application/vnd.ms-powerpoint,text/plain</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
<action name="download" class="com.action.DownloadAction">
<result name="success" type="stream">
<param name="contentType">text/plain</param>
<param name="contentDisposition">filename="text.txt"</param>
<param name="inputName">downloadFile</param>
</result>
</action>
</package>
</struts>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts> <constant name="struts.custom.il8n.resources" value="message"></constant> <!-- 定义国际化方式,将struts2内置的验证提示方式覆盖掉 “message”为自己创建的文件,且必须在src根目录下 -->
<constant name="struts.i18n.encoding" value="gbk"></constant>
<constant name="struts.multipart.saveDir" value="f:\"></constant> <package name="struts2" extends="struts-default">
<interceptors> <!-- 拦截器根节点 -->
<interceptor name="auth" class="interceptor.AuthInterceptor"></interceptor> <!-- 定义一个拦截器 -->
<interceptor name="MethodFilterInterceptor" class="interceptor.MethodFilterInteceptor"></interceptor> <!-- 对指定方法进行拦截 -->
<interceptor-stack name="default"> <!-- 定义一个拦截器栈 -->
<interceptor-ref name="auth"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref> <!-- 引用继承下来的默认拦截器 -->
</interceptor-stack>
</interceptors>
<!-- <default-interceptor-ref name="default"> --> <!-- 定义一个默认的拦截器引用 -->
<!--</default-interceptor-ref>-->
<global-results> <!-- 定义一个全局的结果 -->
<result name="login" type="redirect">/login.jsp</result>
</global-results>
<action name="login" class="com.action.LoginAction">
<result name="success">/register2.jsp</result>
<result name="input">/login.jsp</result>
<result name="false">/login.jsp</result>
</action>
<action name="pointConvert" class="com.action.PointAction">
<result name="success">/output.jsp</result>
</action>
<action name="register" class="com.action.RegisterAction" method="reg"> <!-- Action会调用“reg”这个方法 -->
<result name="success">/success.jsp</result>
<result name="input">/register2.jsp</result>
<interceptor-ref name="MethodFilterInterceptor">
<param name="includeMethods">text,execute</param> <!-- 对指定方法进行拦截 -->
<param name="excludeMethods">execute</param> <!-- 对指定方法不拦截 -->
</interceptor-ref>
<interceptor-ref name="auth"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref> <!-- 引用继承下来的默认拦截器 -->
<!--
<interceptor-ref name="auth"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
-->
</action>
<action name="upload" class="com.action.UploadAction">
<result name="success">/uploadfile/result.jsp</result>
<result name="input">/uploadfile/upload.jsp</result>
<interceptor-ref name="fileUpload">
<param name="maximumSize">409600</param>
<param name="allowedTypes">application/vnd.ms-powerpoint,text/plain</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
<action name="download" class="com.action.DownloadAction">
<result name="success" type="stream">
<param name="contentType">text/plain</param>
<param name="contentDisposition">filename="text.txt"</param>
<param name="inputName">downloadFile</param>
</result>
</action>
</package>
</struts>
解决方案 »
- js数组怎么利用jquery ajax怎么传到java后台,后台怎么接受啊。。
- spring mvc+hibernate所有页面检查是否已登录,应该怎么做
- struts2 框架验证 急,在线等
- 怎样给struts标签动态传递参数?
- sql语句怎样转换为hql
- dbcp
- eclipse3.1.2+tomcat5.5.15+lomboz3.1.2+wtp中碰到的问题,急待大家帮忙解决!多谢多谢,真的很急!!!
- sql语言杂这变态。
- 使用struts1.1自带例子 运行有错啊 大家帮我看看!急。。。
- 高分求解~~
- java中对String对象的优化,关于一道困扰许多人的题的解答
- Struts2.1.6+spring2.5.6+hibernate3.3.1框架集报错:Context initialization failed
import java.util.List;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class UploadAction extends ActionSupport {
private String username;
private List<File> file;
private List<String> fileFileName;
private List<String> fileContentType;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public List<File> getFile() {
return file;
}
public void setFile(List<File> file) {
this.file = file;
}
public List<String> getFileFileName() {
return fileFileName;
}
public void setFileFileName(List<String> fileFileName) {
this.fileFileName = fileFileName;
}
public List<String> getFileContentType() {
return fileContentType;
}
public void setFileContentType(List<String> fileContentType) {
this.fileContentType = fileContentType;
}
@Override
public String execute() throws Exception {
for(int i = 0;i<file.size();i++){
InputStream is = new FileInputStream(file.get(i));
String path = ServletActionContext.getRequest().getRealPath("/");
File file2 = new File(path,this.getFileFileName().get(i));
OutputStream os = new FileOutputStream(file2);
byte[] bu = new byte[400];
int length = 0;
while((length=is.read(bu))>0){
os.write(bu, 0, length);
}
is.close();
os.close();
}
return SUCCESS;
}
}
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'upload.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
function add()
{
var td = document.getElementById("td");
var br = document.createElement("br");
var input = document.createElement("input");
var button = document.createElement("input");
input.type="file";
input.name="file";
button.type="button";
button.value="remove";
button.onclick=function()
{
td.removeChild(br);
td.removeChild(input);
td.removeChild(button);
}
td.appendChild(br);
td.appendChild(input);
td.appendChild(button);
}
</script>
</head>
<body>
<s:form action="upload" enctype="multipart/form-data" theme="simple">
<table>
<tr>
<td>
<s:fielderror></s:fielderror>
</td>
</tr>
</table>
<table>
<tr>
<td>username:<s:textfield name="username"></s:textfield></td>
</tr>
<tr>
<td id="td">file:<s:file name="file" ></s:file><input type="button" value="add more.." onclick="add()" /></td>
</tr>
<tr>
<td><s:submit></s:submit></td>
</tr>
</table>
</s:form>
</body>
</html>
楼主如果假如单单是想实现struts的文件上传功能的话,我将代码发给你
(留个邮箱!)