use*_*146 9 java jsp anonymous-inner-class el
如果我有一个这样的匿名内部类对象(其中Foo是一个接口):
Foo foo = new Foo(){
@Override
public String hello(Object dummyArg){
return "hello, world.";
}
};
Run Code Online (Sandbox Code Playgroud)
我尝试Foo.hello从这样的jsp 调用:
${foo.hello('blah')}
Run Code Online (Sandbox Code Playgroud)
它抛出:
javax.el.MethodNotFoundException: Unable to find method [hello] with [1] parameters
Run Code Online (Sandbox Code Playgroud)
但如果没有参数:
Bar bar = new bar(){
@Override
public String hello(){
return "hello, world.";
}
};
Run Code Online (Sandbox Code Playgroud)
...
${bar.hello()}
Run Code Online (Sandbox Code Playgroud)
它工作正常.为什么?
这不是7121303的副本.我正在特别询问匿名的内部课程.使用常规类的实例,它可以使用任意数量的参数.
可能,您需要创建 EL 函数,通过该函数可以传递参数。(http://blog.idleworx.com/2010/04/custom-tags-and-custom-el-functions-in.html)
EL 2.2 中引入了对传递方法参数和调用非 getter 方法的支持。在 tomcat 上启用 EL 2.2 ( http://code2inspire.wordpress.com/2010/11/05/how-to-enable-el-2-2-on-tomcat-6/ )