今天学到Struts2的标签库
在struts2标签中使用OGNL语言,命名一个包为ognl.
然后按步骤写继承ActionSupport类的类,配置struts.xml
然后运行
尴尬的事情就发生了
java.lang.NoSuchMethodException: ognl.s.execute()
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1247)
at ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68)
at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:117)
at com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:108)
at ognl.OgnlRuntime.callMethod(OgnlRuntime.java:1370)
at ognl.ASTMethod.getValueBody(ASTMethod.java:91)
at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
at ognl.SimpleNode.getValue(SimpleNode.java:258)
at ognl.Ognl.getValue(Ognl.java:467)
at ognl.Ognl.getValue(Ognl.java:431)
错误是这个类的这个方法没有实现,什么鬼。。。
后来在这个包下的重新命名一个类,重写execute()
错误还在。
最后重新写一个测试包。
运行可以了,太感动了!!!
最后,得出一个结论:
不要以ognl开头的包名,ogls可以,com.example.ognl可以。