The struts 2 set the struts.ognl.allowStaticMethodAccess to false, for security issues. The static method invocation may be useful in some cases for example when dealing with expression base validators Struts 2 using StringUtils in validator expersions.
One way to solve this problem is to define a helper method in the action, for example, if we want to use Math class we should add below:
public double randomMath(){
return Math.random();
}
public double asinMath(double a){
return Math.asin(a);
}
....
And use it as ${randomMath} or ${asinMath(1)}
As you can see for every method in Math class we need to define a public method in our action, with same signature.
Is there a better way to avoid these boilerplate getters?!
OGNL allows execution of methods, but the static access is disabled by default, so you cannot use static method in expressions. However, you can teach OGNL which classes needs to access the static methods.
You can code something
Action class
In JSP