struts2的@AllowedMethods注解是怎么用的。

尘同学 2017-06-20 05:47:03
用struts注解的时候,按照之前的方法,动态访问一个action中的方法,
是用的http://localhost:8080/sshe/userAction!test.action

报错:
ERROR Dispatcher Could not find action or result: /sshe/userAction!test.action

Method test for action userAction is not allowed! - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:200)
at org.apache.struts2.factory.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
at org.apache.struts2.factory.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37)
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)


百度查看Method test for action userAction is not allowed!这一句
是说由于新的漏洞,于是要修改配置:
在struts2的配置的action配置中加上

<package name="" namespace="/" extends="" >
<action name="*" class="" method="{1}">
<interceptor-ref name=""></interceptor-ref>
<result name="input">/manager/hhh/ggg.jsp</result>
<allowed-methods>input,find,tog,jiebang</allowed-methods>
</action>
</package>

但我这是用注解的。有人说可以用@AllowedMethods,我自己试了几种写法。都没对,
@AllowedMethods(test)
public void test(){
logger.info("进入action");
}

总是提示我不对,Test加“test”也不行。

因为我是测试用的,于是我用了一个低的struts2版本2.3.4.1——(之前是2.5.5的)以为就不会这个错误。结果发现还是这个。

我有两个问题请指教,万分感谢罗。
第一个就是:怎么用@AllowedMethods。让我能顺利调用test方法。
第二个:换了之前的低版本struts还是有这样的问题,这是为什么?难道出了漏洞之后,还会返回去对低版本的jar也做限制吗?
...全文
563 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
vswen5 2017-08-15
  • 打赏
  • 举报
回复
建议学会用struts2了 学习下springMVC比struts2好用简洁明了
vswen5 2017-08-15
  • 打赏
  • 举报
回复
<package name="struts" namespace="/" extends="" >
<action name="test" class="action.UserAction" method="test">
	<result name="success">test.jsp</result>
</action>

public String test(){
	logger.info("进入action");
	return "success";
}
信息qq 2017-08-14
  • 打赏
  • 举报
回复
我是这么使用的,使用注解的方式 没有在Struts.xml进行action的配置,jar包换回低版本之后,讲道理是不会出现这种情况的 @Action(value="bookAction",results={@Result(name="success",location="/success.jsp")}) @AllowedMethods(value={("add"),("update"),("delete")}) public class BookAction extends BaseAction<Book> { @Override public String execute() throws Exception { System.out.println(model); bookService.save(model); return "success"; } public String add(){ return "success"; } public String update(){ return "success"; } public String delete(){ return "success"; }

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧