`
netfork
  • 浏览: 480710 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Struts2中,能够限制Action的成员变量的注入吗? 

阅读更多
根据目前掌握的知识来看,Url请求中的参数,均可以通过Action的set方法被注入到Action中。

现在的问题是,Action中的一些成员变量不想被注入。
如上传文件时,存放服务器上传的路径是通过struts.xml中的param设定的,
同样,Action中也需要对应这个路径的set方法,如:public void setUploadDir(String uploadDir)
这样做的话,如果访问者通过在请求的Url增加一个uploadDir="e:\\"参数,即可以将存放上传文件的路径修改,
从而可能对服务器任意路径上传文件。

由于刚接触Struts2不长时间,想问一下,可以限制通过Action中的set方法的注入吗?

-------------------------------

修改
此问题被管理员踢到“问答”栏目了,参考以下地址。
http://www.iteye.com/problems/7309

也通过站内短信问了几个人,都不能回答我的问题。

从目前来看,最好的办法就是我想到的方法了:
看来,实在不行,我只能调一下staticParams和params的位置了。
这样,使用struts.xml中的设定覆盖来自url的参数。

希望还有更好的办法。

-------------------------------
感觉 pstinghua 的方法比较巧,请参考下文。
 <action name="..." class="...">  
   <interceptor-ref name="defaultStack">    
     <param name="params.excludeMethods">setUploadDir</param>    
   </interceptor-ref>  
 </action>  


分享到:
评论
4 楼 netfork 2008-11-21  
jsea 写道

不过刚刚又考虑了一下,貌似有一种非常规的解决方案:因为 struts.xml 中的 param 总会先于请求的参数传入,可以在 set 方法中进行一个判断,如果该属性已经被设置值了,就不产生变化了。 不过还是不推荐这么做了。


是啊,这样做显然感觉挺怪异的。
3 楼 netfork 2008-11-21  
jsea 写道

我也想知道有没有这种限制。以前做的一个项目,也曾经想碰到过同样的问题,没找到这种限制的方法。因为项目是和spring整合的,所以最后取消set方法,然后用spring注入解决问题。


实在不行,可能只能如此了。我在[问答]里问了,一个人回答的结果如下,但是我试验了下不行。
http://www.iteye.com/problems/7309
2 楼 jsea 2008-11-21  
不过刚刚又考虑了一下,貌似有一种非常规的解决方案:
因为 struts.xml 中的 param 总会先于请求的参数传入,可以在 set 方法中进行一个判断,如果该属性已经被设置值了,就不产生变化了。
不过还是不推荐这么做了。
1 楼 jsea 2008-11-21  
我也想知道有没有这种限制。
以前做的一个项目,也曾经想碰到过同样的问题,没找到这种限制的方法。因为项目是和spring整合的,所以最后取消set方法,然后用spring注入解决问题。
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    webwork in action 第二卷(高清中文版2/3)

    为啥我在Action中定制一个变量并编写了setter/getter方法,struts2能把参数准确为我注入,咋实现的呢?为什么需要Ioc模式,它在struts2中如何体现其价值?struts2是如何利用基本的servlet构建出来这样一个灵活的框架...

    webwork in action 第一卷(高清中文版1/3)

    为啥我在Action中定制一个变量并编写了setter/getter方法,struts2能把参数准确为我注入,咋实现的呢?为什么需要Ioc模式,它在struts2中如何体现其价值?struts2是如何利用基本的servlet构建出来这样一个灵活的框架...

    webwork in action 第三卷(高清中文版3/3)

    为啥我在Action中定制一个变量并编写了setter/getter方法,struts2能把参数准确为我注入,咋实现的呢?为什么需要Ioc模式,它在struts2中如何体现其价值?struts2是如何利用基本的servlet构建出来这样一个灵活的框架...

    Struts Spring Hibernate 整合 OpenSessionInView 例子

    2.通过spring注入dao到 action 3.通过 open session in view filter 支持 延迟加载 4.在页面上通过 jstl 很优雅的获取数据 5.通过 spring aop(aspectJ) 声明事务 6.通过formular 映射参数表,指定两个死的变量

    Spring in Action(第二版 中文高清版).part2

    12.1.3 在Spring 2中注入JNDI对象 12.2 发送电子邮件 12.2.1 配置邮件发送器 12.2.2 构建电子邮件 12.3 调度任务 12.3.1 使用Java Timer调度任务 12.3.2 使用Quartz调度器 12.3.3 按调度计划调用方法 ...

    Spring in Action(第2版)中文版

    12.1.3在spring2中注入jndi对象 12.2发送电子邮件 12.2.1配置邮件发送器 12.2.2构建电子邮件 12.3调度任务 12.3.1使用javatimer调度任务 12.3.2使用quartz调度器 12.3.3按调度计划调用方法 12.4使用jmx管理...

    Spring in Action(第二版 中文高清版).part1

    12.1.3 在Spring 2中注入JNDI对象 12.2 发送电子邮件 12.2.1 配置邮件发送器 12.2.2 构建电子邮件 12.3 调度任务 12.3.1 使用Java Timer调度任务 12.3.2 使用Quartz调度器 12.3.3 按调度计划调用方法 ...

    Java面试宝典2010版

    5、谈谈Struts中的Action servlet。 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 7、STRUTS的应用(如STRUTS架构) 8、说说struts1与struts2的区别。 9、hibernate中的update...

    最新Java面试宝典pdf版

    5、谈谈Struts中的Action servlet。 120 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 120 7、STRUTS的应用(如STRUTS架构) 121 8、说说struts1与struts2的区别。 121 9、...

    Java面试笔试资料大全

    5、谈谈Struts中的Action servlet。 120 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 120 7、STRUTS的应用(如STRUTS架构) 121 8、说说struts1与struts2的区别。 121 9、...

    ssh(structs,spring,hibernate)框架中的上传下载

     首先,必须定义一个能够从连接池中抽取出本地数据库JDBC对象(如OracleConnection,OracleResultSet等)的抽取器:nativeJdbcExtractor,这样才可以执行一些特定数据库的操作。对于那些仅封装了Connection而未包括...

    Java面试宝典-经典

    5、谈谈Struts中的Action servlet。 120 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 120 7、STRUTS的应用(如STRUTS架构) 121 8、说说struts1与struts2的区别。 121 9、...

    JAVA面试宝典2010

    5、谈谈Struts中的Action servlet。 120 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 120 7、STRUTS的应用(如STRUTS架构) 121 8、说说struts1与struts2的区别。 121 9、...

    java面试题大全(2012版)

    5、谈谈Struts中的Action servlet。 120 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 120 7、STRUTS的应用(如STRUTS架构) 121 8、说说struts1与struts2的区别。 121 9、...

    Java面试宝典2012版

    5、谈谈Struts中的Action servlet。 120 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 120 7、STRUTS的应用(如STRUTS架构) 121 8、说说struts1与struts2的区别。 121 9、...

    java面试宝典2012

    5、谈谈Struts中的Action servlet。 131 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 131 7、STRUTS的应用(如STRUTS架构) 132 8、说说struts1与struts2的区别。 132 9、...

    Java面试宝典2012新版

    5、谈谈Struts中的Action servlet。 120 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 120 7、STRUTS的应用(如STRUTS架构) 121 8、说说struts1与struts2的区别。 121 9、...

    spring in action英文版

     10.1.2 实现知晓Spring的Struts action  10.1.3 委托action  10.2 使用Tapestry  10.2.1 替换Tapestry引擎  10.2.2 装载Spring Bean至Tapestry页面中  10.3 集成JavaServer Faces  10.3.1 解析...

Global site tag (gtag.js) - Google Analytics