是否可以在GSP中声明一个函数?

时间:2012-02-07 08:03:06

标签: groovy jsp-tags gsp

如何在GSP中声明一个功能?我需要像taglib这样的东西,但在GSP中声明 - 外面没关系

2 个答案:

答案 0 :(得分:9)

您无法在GSP中定义方法。但是如果你愿意,可以使用匿名函数:D

示例:

<%
    def prettify = { "***$it***" }
%>
<h1>${prettify(someText)}</h1>

虽然这个例子没有多大意义,因为可以内联一点点格式。对于视图的任何额外逻辑,我将遵循OverZealous recommendation并使用taglib。

答案 1 :(得分:6)

没有。只是不要这样做。这完全违背了GSP的目的。 GSP旨在处理可视标记信息,而不是编程逻辑。直接在您的GSP 中投掷功能将导致无法维护的代码混乱。

为什么不把它放在标签中?这是标签的用途;它只在您的GSP中使用并不重要。 GSP应该只包含简单的显示逻辑和输出内容。可重复使用的代码应始终包含在taglib中,或者包含在某种控制器或服务中,以用于复杂的逻辑。

您没有提到您正在使用的框架,例如Gaelyk或Grails。 (除非您出于某种原因在服务器上使用纯Groovy。)没有更实用的方法可以在没有更多信息的情况下推荐一个好的解决方案。

如果您在GSP中使用JSP样式标记(<% %>),那么您可能做错了。

如果您想要更好的答案,请提供有关编程环境的详细信息,目标是什么以及原因(为什么您不想使用taglib)。