在 GSP 中使用 JSTL 标签
我正在尝试在 GSP 中使用 c:url
JSTL 标记。我已将以下声明添加到 GSP 布局的顶部:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
我还添加了 jstl-1.1.2.jar
作为依赖项。当我在 GSP 中调用此标签时:
${c.url(value: 'j_spring_security_check')}
我收到错误:
计算表达式时出错 [c.url(value: 'j_spring_security_check')] 第 [27] 行:无法在 null 对象上调用方法 url()
根据 Grails docs,JSP应该支持标签调用的方法风格标签,所以我认为这不是问题。我是否需要在 Grails 应用程序中的某个位置包含 JSTL taglib 的 TLD 才能使其正常工作?
I'm trying to use the c:url
JSTL tag in a GSP. I've added the following declaration to the top of the GSP's layout:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
I've also added jstl-1.1.2.jar
as a depenency. When I call this tag in a GSP:
${c.url(value: 'j_spring_security_check')}
I get the error:
Error evaluating expression [c.url(value: 'j_spring_security_check')]
on line [27]: Cannot invoke method url() on null object
According to the Grails docs, the method-style of tag invocation should is supported for JSP tags, so I don't think this is the problem. Do I need to include the JSTL taglib's TLD somewhere in the Grails app in order for this to work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
事实证明,问题出在这个声明上:
出于某种原因,如果将其添加到布局中,它就不起作用,它必须出现在 GSP 本身中。当对 taglib 的 JAR 的依赖项添加到
BuildConfig.groovy
时,taglib 的 .tld 会神奇地出现在/web-app/WEB-INF/tld
中It turns out that the problem was this declaration:
For some reason it doesn't work if it's added to the layout, it must appear in the GSP itself. The .tld for the taglib magically appears in
/web-app/WEB-INF/tld
when the dependency on the taglib's JAR is added toBuildConfig.groovy