struts2:This method: login for action user is not allowed!
6929 ワード
本文転載:原文http://blog.csdn.net/qq_29407009/article/details/51474118
struts2:This method: login for action user is not allowed!
struts 2 2.5バージョンのパッケージを使っているとき、気持ち悪い問題が発生しました.ダイナミックメソッドを使っているとき、This method:login for action user is not allowed!にこのような原因が現れたのは何ですか?このようにエラーを報告した場所をクリックして、ソースコードに入ってソースコードを表示します.これはエラーを報告した場所のソースコードです.私たちが見たのはこの方法です. 1 2 3 4 5 はこの方法(config.isAllowedMethod)がfalseを返したに違いない.この方法に入って、この方法の処理方法を見て、method.equals(methodName != null ? methodName : DEFAULT_METHOD) || allowedMethods.isAllowed(method)”.その中でこれは:DEFAULT_METHOD:execute 説明: 1 2 3 そしてallowedMethodsに入りますisAllowed(method)という方法では 1 2 3 4 5 6 7 8 9 10 ここを見ると解決策がわかります
struts2:This method: login for action user is not allowed!
struts 2 2.5バージョンのパッケージを使っているとき、気持ち悪い問題が発生しました.ダイナミックメソッドを使っているとき、This method:login for action user is not allowed!にこのような原因が現れたのは何ですか?このようにエラーを報告した場所をクリックして、ソースコードに入ってソースコードを表示します.これはエラーを報告した場所のソースコードです.私たちが見たのはこの方法です.
if (config.isAllowedMethod(method)) {
invocation.init(this);
} else {
throw new ConfigurationException("This method: " + method + " for action " + actionName + " is not allowed!");
}
//1.methodName != null ? methodName : DEFAULT_METHOD methodName , methodName , DEFAULT_METHOD (execute)
//2.method.equals() allowedMethods.isAllowed(method), login, allowedMethods.isAllowed(method) !
return method.equals(methodName != null ? methodName : DEFAULT_METHOD) || allowedMethods.isAllowed(method)
//allowedMethods: struts , 2.5 , struts2 struts-default.xml
<global-allowed-methods>execute,input,back,cancel,browse,save,delete,list,index</global-allowed-methods>
public boolean isAllowed(String method) {
for (AllowedMethod allowedMethod : allowedMethods) {
if (allowedMethod.isAllowed(method)) {
return true;
}
}
return false;
}