我想将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>下面是我的Action类
public class MyAction extends ActionSupport{
public String execute()throws Exception{
/*
here how can i read init-params
*/
}
}因此,在MyAction类中,我想读取在web.xml中配置的所有初始化参数,我如何做到这一点?
注意:我想扩展ActionSupport类,因为我想使用getText()方法从ResourceBundle中读取值
发布于 2018-06-01 17:46:22
示例。您可以在过滤器级别访问init参数
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;
}
}发布于 2018-05-10 14:11:22
试试这个:
public class MyAction extends ActionSupport implements ServletContextAware{
private ServletContext servletContext;
public String execute() {
String someValue = (String)servletContext.getInitParameter("some-param");
System.out.println(someValue);
return SUCCESS;
}
@Override
public void setServletContext(ServletContext context) {
this.servletContext = context;
}
}https://stackoverflow.com/questions/50266391
复制相似问题