Вызов методов класса (статических) из страницы просмотра скорости

Можете ли вы вызывать методы класса изнутри страницы просмотра?

Конкретно те, которые не передаются в поле зрения?

В asp.net MVC я могу сделать это:

<%= SomeClass.FixDateFormat(ViewData.Model.SomeClass.DateCreated) %>

2 ответа

Так как это поднялось в верхней части моего поиска в Google по этой теме, кажется, что люди, возможно, хотели бы видеть обновленный ответ, когда они получают это в верхней части своего поиска...

(нашел это здесь: http://velocity.10973.n7.nabble.com/Use-of-static-functions-td15126.html)

в Velocity 1.5 или более ранней версии вы можете просто использовать:

#set( $String = '' )
#set( $foo = $String.format('%.1f', $dataFedIn) )

потому что вы всегда можете вызвать статические методы на экземплярах.:)

однако, поскольку есть некоторые статические классы, для которых вы не можете создавать экземпляры (например, java.util.Math), мы добавили поддержку в 1.6 для статических методов класса без экземпляров:

Джава:

context.put("String", String.class);

Скорость:

#set( $foo = $String.format('%.1f', $dataFedIn) ) 

Вот универсальный способ вызова любого статического метода любого класса без необходимости предварительного манипулирования контекстом:

#set($String='')##
#set($Base64=$String.class.forName('java‌​.util.Base64'))##
#‌​set($str='test')##
​$Base64.getEncoder()‌​.encodeToString($str‌​.getBytes('utf8'))
Другие вопросы по тегам