这是我的struts.xml配置文件,其中有一个登录拦截器。我想使用不同的文件上传拦截器,以不同的操作使用不同的文件类型,并使用给定的最大大小。但是问题出在这里:它总是采用默认值maximumSize和allowedType。请帮我我在哪里做错了?
struts.xml
maximumSize
allowedType
<?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.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="false" /> <constant name="struts.custom.i18n.resources" value="ApplicationResources" /> <package name="default" extends="struts-default" namespace="/"> <result-types> <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" /> </result-types> <interceptors> <interceptor name="nlogin" class="com.picvik.interceptor.LoginInterceptor"/> <interceptor-stack name="loginStack"> <interceptor-ref name="servletConfig"/> <interceptor-ref name="params"/> <interceptor-ref name="nlogin"/> <interceptor-ref name="prepare"/> <interceptor-ref name="chain"/> <interceptor-ref name="modelDriven"/> <interceptor-ref name="staticParams"/> <interceptor-ref name="params"/> <interceptor-ref name="conversionError"/> <interceptor-ref name="validation"/> <interceptor-ref name="workflow"/> </interceptor-stack> </interceptors> <!-- <default-interceptor-ref name="loginStack"/> --> <global-results> <result name="login" type="tiles">/login.tiles</result> </global-results> <action name="home" class="com.picvik.action.HomeAction"> <interceptor-ref name="loginStack"/> <result name="success" type="tiles">/home.tiles</result> <result name="error" type="tiles">/welcome.tiles</result> </action> <action name="registration" class="com.picvik.action.RegisterAction" method="execute"> <result name="success" type="tiles">/register.tiles</result> </action> <action name="register" class="com.picvik.action.RegisterAction" method="register"> <result name="success" type="tiles">/registerverify.tiles</result> <result name="error" type="tiles">/register.tiles</result> <result name="input" type="tiles">/register.tiles</result> </action> <action name="verify" class="com.picvik.action.RegisterAction" method="verify"> <result name="success" type="tiles">/login.tiles</result> <result name="error" type="tiles">/registerverify.tiles</result> </action> <action name="login" class="com.picvik.action.LoginAction"> <result name="success" type="tiles">/home.tiles</result> <result name="input" type="tiles">/login.tiles</result> </action> <action name="dologin" class="com.picvik.action.LoginAction" method="login"> <interceptor-ref name="defaultStack"/> <result name="success" type="tiles">/home.tiles</result> <result name="input" type="tiles">/login.tiles</result> </action> <action name="logout" class="com.picvik.action.LoginAction" method="logout"> <interceptor-ref name="defaultStack"/> <result name="success" type="tiles">/login.tiles</result> </action> <action name="viewprofile" class="com.picvik.action.ViewProfileAction"> <interceptor-ref name="loginStack"/> <result name="success" type="tiles">/viewprofile.tiles</result> </action> <action name="editprofile" class="com.picvik.action.ViewProfileAction"> <interceptor-ref name="loginStack"/> <result name="success" type="tiles">/editprofile.tiles</result> </action> <action name="saveprofile" class="com.picvik.action.ViewProfileAction" method = "saveProfile"> <interceptor-ref name="loginStack"/> <result name="success" type="tiles">/home.tiles</result> <result name="input" type="tiles">/editprofile.tiles</result> </action> <action name="changeprofilephoto" class="com.picvik.action.ChangeProfilePhotoAction"> <interceptor-ref name="loginStack"/> <result name="success" type="tiles">/changephoto.tiles</result> <result name="input" type="tiles">/changephoto.tiles</result> </action> <action name="uploadprofilephoto" class="com.picvik.action.ChangeProfilePhotoAction" method="uploadProfilePhoto"> <interceptor-ref name="fileUpload"> <param name="maximumSize">2097152</param> <param name="allowedTypes"> image/png,image/gif,image/jpeg,image/pjpeg </param> </interceptor-ref> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type= "redirectAction"> <param name="actionName">viewprofile</param> </result> <result name="input" type="tiles">/changephoto.tiles</result> </action> <!-- video upload--> <action name="videouploader" class="com.picvik.action.UploadVideoAction" method="execute"> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type="tiles">/videoupload.tiles</result> </action> <action name="uploadvideo" class="com.picvik.action.UploadVideoAction" method="uploadVideo"> <interceptor-ref name="fileUpload"> <param name="maximumSize">209715200</param> <param name="allowedTypes"> video/mp4 </param> </interceptor-ref> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type= "redirectAction"> <param name="actionName">editvideo</param> </result> <result name="input" type="tiles">/videoupload.tiles</result> </action> <action name="editvideo" class="com.picvik.action.UploadVideoAction" method="editVideo"> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type= "redirectAction"> <param name="actionName">home</param> </result> <result name="input" type="tiles">/editvideo.tiles</result> </action> <action name="savevideos" class="com.picvik.action.UploadVideoAction" method="saveVideo"> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type= "redirectAction"> <param name="actionName">listVideo</param> </result> <result name="error" type="tiles">/editvideo.tiles</result> </action> <!-- video upload ends here--> <!-- photo upload --> <action name="photouploader" class="com.picvik.action.UploadPhotoAction"> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type="tiles">/photoupload.tiles</result> </action> <action name="uploadphoto" class="com.picvik.action.UploadPhotoAction" method="uploadPhoto"> <interceptor-ref name="fileUpload"> <param name="maximumSize">20971520</param> <param name="allowedTypes"> image/png,image/gif,image/jpeg,image/pjpeg </param> </interceptor-ref> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type= "redirectAction"> <param name="actionName">editphoto</param> </result> <result name="input" type="tiles">/photoupload.tiles</result> </action> <action name="editphoto" class="com.picvik.action.UploadPhotoAction" method="editPhoto"> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type= "redirectAction"> <param name="actionName">home</param> </result> <result name="input" type="tiles">/editphoto.tiles</result> </action> <action name="savephotos" class="com.picvik.action.UploadPhotoAction" method="savePhoto"> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type= "redirectAction"> <param name="actionName">listalbum</param> </result> <result name="error" type="tiles">/editphoto.tiles</result> </action> <action name="listalbum" class="com.picvik.action.ViewAlbumAction" method="listAlbum"> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type="tiles">/listalbum.tiles</result> </action> <action name="listphoto" class="com.picvik.action.ViewAlbumAction" method="listPhoto"> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type="tiles">/listphoto.tiles</result> </action> <action name="listalbumphoto" class="com.picvik.action.ViewAlbumAction" method="listAlbumPhoto"> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type="tiles">/listalbumphoto.tiles</result> </action> <action name="viewphoto" class="com.picvik.action.ViewAlbumAction" method="viewPhoto"> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type="tiles">/viewphoto.tiles</result> </action> <action name="commentonphoto" class="com.picvik.action.CommentAction" method="commentOnPhoto"> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type= "redirectAction"> <param name="actionName">listphoto</param> </result> </action> <action name="commentonalbum" class="com.picvik.action.CommentAction" method="commentOnAlbum"> <interceptor-ref name="loginStack"></interceptor-ref> <result name="success" type= "redirectAction"> <param name="actionName">listalbum</param> </result> </action> </package>
使用以下配置属性覆盖默认值
struts.multipart.maxSize=2097152
这是从default.properties中获取的。注意不带0末尾。
0
检查文档和示例如何使用fileUpload拦截器。
fileUpload