Struts2中的struts.multipart.saveDir的配置
<constant name="struts.multipart.saveDir" value="D:\\AsimsTemp"></constant>
黑体部分应为“\\”,否则回导致action中的自动封装数据失败,从而导致validate中验证出现空指针“NullPointer”
另外:
<constant name="struts.multipart.saveDir" value="/temp" /> 将上传的临时文保存到D:/temp,而不是项目的WebAppRoot+/temp 下
原因解释:
当你配置"struts.multipart.saveDir"时,struts会将目录定向为:
- if (saveDir != null) {
 - fac.setRepository(new File(saveDir));
 - }
 
- if (saveDir != null) {
 - fac.setRepository(new File(saveDir));
 - }
 
当"struts.multipart.saveDir"为“/temp”时,很容易验证 : 
new File("/temp").getAbsolutePath(); 
为当前的根目录下的temp目录。 
当你使用相对路径比如 "myproject/temp"配置时,效果依然不行。因为 
new File(相对路径) 得到的结果是: 
user.dir + 相对路径 
在Tomcat下user.dir是 Tomcat目录下的bin目录,所以上述路径最终是: 
Tomcat/bin/myproject/temp 
( 不要试图使用 ../webapps/myproject/temp , 这样是不成功的)。
解决办法2个,个人爱好自选: 
1、更改user.dir的默认值。 
在系统启动的时候,用ServletContextListener修改系统属性。 
System.setProperty("user.dir","你的Tomcat的目录下的webapps"); 
然后在配置:
- <constant name="struts.multipart.saveDir" value="yourproject/temp"></constant>
 
- <constant name="struts.multipart.saveDir" value="yourproject/temp"></constant>
 
2、直接了当:
- <constant name="struts.multipart.saveDir" value="绝对路径"></constant>
 
Struts2中的struts.multipart.saveDir的配置的更多相关文章
- 详解struts.multipart.saveDir的临时文件路径
		
Struts2中的struts.multipart.saveDir主要是用来设置上传文件的临时目录,在不同的配置方式下,它的临时文件目录大有不同,好多人在设置后往往找不到这个临时目录在哪里,下面我就来 ...
 - Unable to find ‘struts.multipart.saveDir’ Struts2上传文件错误的解决方法
		
Unable to find ‘struts.multipart.saveDir’ Struts2上传文件错误的解决方法 在使用struts2的项目中上传文件的时候出现了一个这样的错误: 2011-7 ...
 - Unable to find 'struts.multipart.saveDir' property setting.
		
今天在项目开发中遇到如下问题 项目使用的是struts2 Unable to find 'struts.multipart.saveDir' property setting. 后来在网上查询特此记录 ...
 - 上传文件报错--Unable to find 'struts.multipart.saveDir' property setting.
		
struts2 上传文件时,有时候会报这个错误. Unable to find 'struts.multipart.saveDir' property setting. Defaulting to j ...
 - INFO Dispatcher:42 - Unable to find 'struts.multipart.saveDir' property setting. Defaulting to javax.servlet.context.tempdir
		
INFO Dispatcher:42 - Unable to find 'struts.multipart.saveDir' property setting. Defaulting to javax ...
 - struts2中改变struts.xml默认路径
		
struts2.X配置文件默认存放路径在/WEB-INF/classes目录下,即将struts.xml放在src的目录下. 但是为了方便管理,开发人员把struts.xml放到其他位置,处理方法如下 ...
 - Struts2中拦截器的使用与配置
		
一,拦截器是什么? 拦截器是在Action执行之前和之后执行的代码,是一个类似于过滤器的类: 二,拦截器的作用 拦截器拦截Action的请求,在Action之前或之后实现某项功能: 三,拦截器的特点 ...
 - Struts2中有关struts-default.xml,struts.xml,struts.properties文件详解
		
1) struts-default.xml 这个文件是struts2框架默认加载的配置文件.它定义struts2一些核心的bean和拦截器. <?xml version="1.0&qu ...
 - struts2中的constant常量配置
		
struts2中的constant配置详解 本文主要讲解一下struts2中的constant常量配置,内容主要来自于互联网的整理.<?xml version="1.0" e ...
 
随机推荐
- linux内核中的链表
			
1.内核中的链表 linux内核链表与众不同,他不是把将数据结构塞入链表,而是将链表节点塞入数据,在2.1内核中引入了官方链表,从此内核中所有的链表使用都采用此链表,千万不要在重复造车轮子了!链表实现 ...
 - hdu 5445 多重背包
			
Food Problem Time Limit: 3000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)To ...
 - HDU2108和HDU2036(叉乘)
			
hdu2108 判断是否为凸边形 判断连续三点的叉乘 若为凸,内角<180:若为凹,内角>180 所以通过正负来判断 #include <iostream> #include ...
 - bzoj 3261最大异或和
			
Description 给定一个非负整数序列{a},初始长度为N. 有M个操作,有以下两种操作类型: 1.Ax:添加操作,表示在序列末尾添加一个数x,序列的长度N+1. 2.Qlrx:询问操作,你需要 ...
 - poj 2318 叉积+二分
			
TOYS Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 13262 Accepted: 6412 Description ...
 - [APIO2014]
			
T1.回文树裸题. #include<cstdio> #include<iostream> #define ll long long using namespace std; ...
 - 移动端开发,文字增加,字体自动放大(font boosting)
			
问题缘由:做文章详情页的时候,文字多了一点字体就放大了,真的是奇了怪了. 问题重现 一段文字的时候 两段文字的时候 很明显,字体放大了很多. 疑点 meta标签缩放的问题 最近正好遇到处理retain ...
 - Postgresql 创建SEQUENCE,Springboot中使用KeyHolder
			
项目中使用到JdbcTemplate中的KeyHolder,代码如下: String sql = "insert into web_users(username, password, pho ...
 - html5应用程序缓存
			
缓存概念: ------页面缓存: html.JS.CSS等,这些缓存资源是由于浏览器的行为而产生; ------数据缓存 ----------AppCache: Cache Manifest 操作 ...
 - selenium常用内容
			
一.声明浏览器对象 注意点一,Python文件名或者包名不要命名为selenium,会导致无法导入 from selenium import webdriver #webdriver可以认为是浏览器的 ...