24

您可以从视图页面内部调用类方法吗?

特别是那些没有传递到视图中的?

在 asp.net MVC 中,我可以这样做:

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

2 回答 2

26

由于这出现在我关于这个主题的谷歌搜索的顶部,似乎人们可能希望在他们的搜索顶部看到这个更新的答案......

(在这里找到: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) ) 
于 2013-02-28T02:43:06.327 回答
14

这是调用任何类的任何静态方法而不需要初步上下文操作的通用方法:

#‌​set($str='test')##
#set($Base64=$str.class.forName('java‌​.util.Base64'))##
​$Base64.getEncoder()‌​.encodeToString($str‌​.getBytes('utf8'))
于 2016-10-10T17:29:17.843 回答