I'm trying a very basic static Java method invocation by Thymeleaf:
<div th:text="${T(java.lang.Math).random()}"/>
But always got the exception OgnlException: source is null for getProperty(null, "lang")
.
Full error message:
2023-08-11 16:17:16,221 ERROR [etp1561005241-55] o.t.TemplateEngine [THYMELEAF][etp1561005241-55] Exception processing template "test.html": Exception evaluating OGNL expression: "T(java.lang.Math).random(
)" (template: "test.html" - line 89, col 14)
org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating OGNL expression: "T(java.lang.Math).random()" (template: "diag-ui.html" - line 89, col 14)
at org.thymeleaf.standard.expression.OGNLVariableExpressionEvaluator.evaluate(OGNLVariableExpressionEvaluator.java:199)
at org.thymeleaf.standard.expression.OGNLVariableExpressionEvaluator.evaluate(OGNLVariableExpressionEvaluator.java:104)
at org.thymeleaf.standard.expression.VariableExpression.executeVariableExpression(VariableExpression.java:166)
at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:66)
at org.thymeleaf.standard.expression.Expression.execute(Expression.java:109)
at org.thymeleaf.standard.expression.Expression.execute(Expression.java:138)
at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess(AbstractStandardExpressionAttributeTagProcessor.java:144)
at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74)
at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95)
at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633)
at org.thymeleaf.engine.ProcessorTemplateHandler.handleStandaloneElement(ProcessorTemplateHandler.java:918)
at org.thymeleaf.engine.StandaloneElementTag.beHandled(StandaloneElementTag.java:228)
at org.thymeleaf.engine.TemplateModel.process(TemplateModel.java:136)
at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:661)
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1103)
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1064)
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1053)
at hobbit.mordor.diagui.DiaguiEndpoint.handleSearch(DiaguiEndpoint.java:106)
at hobbit.mordor.diagui.DiaguiEndpoint.handle(DiaguiEndpoint.java:149)
at hobbit.mordor.server.JettyRequestHandler.dispatchRequest(JettyRequestHandler.java:273)
at hobbit.mordor.server.JettyRequestHandler.handle(JettyRequestHandler.java:313)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:516)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: ognl.OgnlException: source is null for getProperty(null, "lang")
Thanks for the answers.
${@java.lang.Math@random()}
worked for me