我正在尝试使用 c:url
GSP 中的 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')}
我收到错误:
Error evaluating expression [c.url(value: 'j_spring_security_check')] on line [27]: Cannot invoke method url() on null object
根据Grails docs ,JSP标签应该支持方法风格的标签调用,所以我认为这不是问题。我是否需要在 Grails 应用程序的某处包含 JSTL taglib 的 TLD 才能使其正常工作?
最佳答案
事实证明,问题出在这个声明上:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
出于某种原因,如果将其添加到布局中,则它不起作用,它必须出现在 GSP 本身中。 taglib 的 .tld 神奇地出现在
/web-app/WEB-INF/tld
中当对 taglib 的 JAR 的依赖添加到 BuildConfig.groovy
关于grails - 在 GSP 中使用 JSTL 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6892767/