我对通配符执行以下操作:
@Namespace("/posts")
public class SearchPostBeansAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private static Logger logger = Logger.getLogger(SearchPostBeansAction.class);
@Override
@Actions({
@Action(value="/{search1}/{param1}/",results={
@Result(name=ACTION_SUCCESS,location="classic.main.general", type="tiles")})
})
public String execute() throws Exception {
logger.info("Action: " + getInvocatedURL() );
String forward = SUCCESS;
logger.info("getSearch1( " + getSearch1() + " )");
logger.info("getParam1( " + getParam1() + " )");
return forward;
}
}
执行结果:
INFO(com.silver.front.view.actions.SearchPostBeansAction)-操作:/ posts / category / cars /
INFO(com.silver.front.view.actions.SearchPostBeansAction)
-getSearch1(category)
INFO(com.silver.front.view.actions.SearchPostBeansAction)-getParam1
(汽车)
如果我拦截该动作:
@InterceptorRef("seoFilter")
@Namespace("/anuncios")
public class SearchPostBeansAction extends ActionSupport{
private static final long serialVersionUID = 1L;
...
}
执行结果:
INFO(com.silver.front.view.actions.SearchPostBeansAction)-操作:/ posts / category / cars /
INFO(com.silver.front.view.actions.SearchPostBeansAction)
-getSearch1(null)
INFO(com.silver.front.view.actions.SearchPostBeansAction)-getParam1
(null)
¿为什么丢失通配符参数?
这里是拦截器:
public class SEOFilter implements Interceptor{
private static final long serialVersionUID = 1L;
private static Logger logger = Logger.getLogger(SEOFilter.class);
ActionSupport actionSupport = null;
public String intercept(ActionInvocation invocation) throws Exception {
actionSupport = (ActionSupport) invocation.getAction();
actionSupport.execute();
}
}
我得到了我想要的东西!:)
非常感谢鲍里斯和罗曼。
我只定义了一个拦截器堆栈。
<interceptors>
<interceptor name="seoFilter" class="com.silver.usaditos.admin.SEOFilter"></interceptor>
<interceptor-stack name="defaultInterceptorStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="seoFilter"/>
</interceptor-stack>
</interceptors>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句