前两天在做javamail的时候发现原来的上传的action把上传文件的路径写在action里面了。那个目录是服务器上的地址,真bad smell。我就想把它改成可以配置的。我给uploadaction添加了一个string 的字段uploadDirectory。在action的配置文件里面给设置了初始值。
可是这样我还是不可以debug的时候发现uploadDirectory是null。不知道怎么回事情了。就到 http://wiki.opensymphony.com 来search了一下,没想到真有。
How do I get static parameters into my action
这个就是我的问题。原来是要加上一个inteceptor。
这样就可以了。不过还是觉得不怎么爽。发布的时候还是要记得修改那个xwork的配置文件。
<
action
name
="fileupload"
class
="cn.com.fivefortunes.upload.FileUpload"
>
< param name ="uploadDirectory" > D:\tomcat5\webapps\files </ param > <! –D:\temp – >
< result name ="success" type ="freemarker" > /upload/upload.ftl </ result >
< interceptor-ref name ="fileUpload" />
< interceptor-ref name ="params" />
</ action >
< param name ="uploadDirectory" > D:\tomcat5\webapps\files </ param > <! –D:\temp – >
< result name ="success" type ="freemarker" > /upload/upload.ftl </ result >
< interceptor-ref name ="fileUpload" />
< interceptor-ref name ="params" />
</ action >
可是这样我还是不可以debug的时候发现uploadDirectory是null。不知道怎么回事情了。就到 http://wiki.opensymphony.com 来search了一下,没想到真有。
How do I get static parameters into my action
这个就是我的问题。原来是要加上一个inteceptor。
<
action
name
="fileupload"
class
="cn.com.fivefortunes.upload.FileUpload"
>
< param name ="uploadDirectory" > D:\tomcat5\webapps\files </ param > <! – D:\temp – >
< result name ="success" type ="freemarker" > /upload/upload.ftl </ result >
< interceptor-ref name ="fileUpload" />
< interceptor-ref name ="params" />
< interceptor-ref name ="static-params" />
</ action >
< param name ="uploadDirectory" > D:\tomcat5\webapps\files </ param > <! – D:\temp – >
< result name ="success" type ="freemarker" > /upload/upload.ftl </ result >
< interceptor-ref name ="fileUpload" />
< interceptor-ref name ="params" />
< interceptor-ref name ="static-params" />
</ action >
这样就可以了。不过还是觉得不怎么爽。发布的时候还是要记得修改那个xwork的配置文件。