java - 如何在Java中访问struts拦截器参数?

标签 java struts2 struts

我在 struts.xml 中有以下代码:

<interceptor-ref name="checkTabsStack">
 <param name="tabName">availability</param> 
</interceptor-ref>

我想访问拦截器例程中的参数 tabName,我该怎么做?我试过了

Map params = ActionContext.getContext().getParameters(); 

但是参数是空的...

谢谢!

最佳答案

拦截器对象应该对用于创建/配置它的 xml 片段一无所知,这是 Struts2 的内部内容。想一想:拦截器类 ( eg ) 没有某些“params”属性,它甚至可能(理论上)由与您发布的 struts.xml 无关的某种机制实例化。这是解耦,Struts2 非常重视这一点。

没错,一些拦截器有一些可配置的参数;但它们通常是特定类的属性。在您的示例中,您的特定拦截器类(您应该知道)可能具有方法 setTabName() getTabName()。 struts2在读取struts.xml文件并实例化拦截器时会调用setter。 setter/getter 是你应该照顾的。查看您的拦截器类文档。

关于java - 如何在Java中访问struts拦截器参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3027202/

相关文章:

java - 使用 IOUtils 和 ImageIO 写入图像文件有什么区别

java - 如何让我的 Android 应用程序方法减少 RAM 消耗

java - 递归方法调用在 kotlin 中会导致 StackOverFlowError,但在 java 中不会

java - Struts2 无参数构造函数中的字符串值更改为空字符串

html - Boostrap 与 Struts 2 兼容吗?

java - 在 DAO 中获取请求变量

java - Eclipse 调试,更改 BigDecimal 上的变量值

java - 如何选择合适的spring、struts和hibernate版本,有什么区别?

java.sql.SQLException : Lock wait timeout exceeded; try restarting transaction exception occur in MYSQL 异常

java - 在struts 2中的请求url路径中传递电子邮件时出错