从 Java 代码中注入 JSP EL and/or JSTL 标签
Injecting JSP EL and/or JSTL tags from Java code
我有 Java 类 用于 JSP 页面。 getAttr()
returns 具有任意数量的 HTML 锚点元素的字符串,指向我的网络应用程序的本地 URL:
public class C {
public String getAttr() {
return "foo <a href = \"/index.html\">bar</a> baz";
}
}
和
<c:set var = "c" value = "..."/>
${c.attr}
只要使用默认上下文(/
),一切都很好。可以使用像 <a href = "<c:url value = "..."/>">...</a>
这样的 smth 来解释非默认上下文,但这是 JSP 特定的。 JSTL/EL 从 Java 代码注入 return "<a href = \"<c:url value = \"...\"/>\">...</a>";
不(也不应该)工作。
如何在不暴露 Java 类 内部的情况下支持非默认上下文?在 JSP 范围之外手动创建超链接至少很难看,但我 运行 没有想法。
尝试在您的 Class c:
中获取 HttpServletRequest
public class C {
private HttpServletRequest request;
//initialize request in a constructor
public String getAttr() {
return "foo <a href = \""+request.getContextPath()+"/index.html\">bar</a> baz";
}
}
我有 Java 类 用于 JSP 页面。 getAttr()
returns 具有任意数量的 HTML 锚点元素的字符串,指向我的网络应用程序的本地 URL:
public class C {
public String getAttr() {
return "foo <a href = \"/index.html\">bar</a> baz";
}
}
和
<c:set var = "c" value = "..."/>
${c.attr}
只要使用默认上下文(/
),一切都很好。可以使用像 <a href = "<c:url value = "..."/>">...</a>
这样的 smth 来解释非默认上下文,但这是 JSP 特定的。 JSTL/EL 从 Java 代码注入 return "<a href = \"<c:url value = \"...\"/>\">...</a>";
不(也不应该)工作。
如何在不暴露 Java 类 内部的情况下支持非默认上下文?在 JSP 范围之外手动创建超链接至少很难看,但我 运行 没有想法。
尝试在您的 Class c:
中获取 HttpServletRequestpublic class C {
private HttpServletRequest request;
//initialize request in a constructor
public String getAttr() {
return "foo <a href = \""+request.getContextPath()+"/index.html\">bar</a> baz";
}
}