struts2 - Struts 1.x 到 Struts 2.5.16
问题描述
我想将 struts 1 迁移到 struts 2.5.16
下面是 struts1 的 web.xml
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>boolean_val</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>param1</param-name>
<param-value>value1</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
因此 struts2.5.16 的相关 web.xml 将如下所示
<filter>
<filter-name>strutsFilterDispatcher</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
**<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts.xml</param-value>
</init-param>
<init-param>
<param-name>some-param</param-name>
<param-value>someValue</param-value>
</init-param>
<init-param>
<param-name>pathParam</param-name>
<param-value>pathvalue</param-value>
</init-param>**
<load-on-startup>1</load-on-startup>
</filter>
下面是我的动作课
public class MyAction extends ActionSupport{
public String execute()throws Exception{
/*
here how can i read init-params
*/
}
}
所以在 MyAction 类中,我想读取 web.xml 中配置的所有 init-params,我该怎么做。?
注意:我想扩展 ActionSupport 类,因为我想使用 getText() 方法从 ResourceBundle 读取值
解决方案
示例示例。您可以在过滤器级别访问初始化参数
web.xml
-------------
<filter>
<filter-name>TestFilter</filter-name>
<filter-class>{path}+TestFilter</filter-class>
<init-param>
<param-name>some-param</param-name>
<param-value>someValue</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>TestFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
java class
-------------
public class TestFilter implements Filter {
private FilterConfig filterConfig = null;
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain fc) throws IOException, ServletException {
final HttpServletRequest req = (HttpServletRequest) request;
final HttpServletResponse res = (HttpServletResponse) response;
String paramterValue = filterConfig.getInitParameter("some-param");
-----
-------and you can set the paramterValue in request instance
try {
fc.doFilter(req, res);
} catch (IllegalStateException e) {
}
}
@Override
public void init(FilterConfig arg0) throws ServletException {
this.filterConfig =arg0;
}
}
推荐阅读
- excel - 如果它与一个公式中的条件匹配,则对一列求和 - 可能吗?
- reactjs - 如何使用 antd Carousel 和 antd Image.Preview
- c# - 通过 CLR 使用 C++ 项目中的 C# dll - 是否有 LoadLibrary 和 GetProcAddress 函数的类似物?
- trace32 - 劳特巴赫脚本:检查程序是否在断点处停止
- mysql - mysql高性能问题
- python - PyQt/ Python - 延迟播放音频文件列表
- python - 连接到数据库时pyodbc中的接口错误
- php - PHP 表示主图
- python - 使用带有图像标签的 csv 文件从文件夹中获取特定图像
- php - 在今天的错误日志文件中记录前一天的 PHP 日志错误