我在bean id globalConstants中有一个名为 var 的静态全局String常量。在我的jsp中,我可以通过 $ {globalConstants.var} 获取它的内容。现在我的var有一个如下所示的URL:
<a href="<spring:url value="/fan/foo.html"/>">Foo</a>
但是,标记不会被评估为正确的URL。但相反,整个标签就在那里。无论如何我的 var 变量中的spring标签在调用时会被评估吗?具体来说,给定的URL应该是这样的
<a href="/abc/fan/foo.html">Foo</a>
答案 0 :(得分:0)
我相信您忘记导入taglib,如:
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
然后下面的行应该工作:
<a href='<spring:url value="/fan/foo.html"/>'>Foo</a>
答案 1 :(得分:0)
我假设你有像
这样的东西public class Constants {
private String var = "<a href=\"<spring:url value=\"/fan/foo.html\"/>\">Foo</a>";
public String getVar() {
return var;
}
}
然后
model.addAttribute("globalConstants", new Constants());
和
${globalConstants.var}
无论如何,var变量中的spring标签在调用时会被评估
不,这里只有一个组件可用:表达式语言解析器。它将看到${..}
并执行适当的逻辑来解析表达式并将String
结果直接写入HttpServletResponse
OutputStream
。
你根本不能做你所要求的,你不应该做。保持视图元素和Java代码分离(除非Java代码用于写入响应)。
如果您需要像
这样的全球持有者<a href="<spring:url value="/fan/foo.html"/>">Foo</a>
将它放在自己的JSP中,import
放在你需要的每个JSP中。