通过taglib传递包含自定义jsp标记中的上下文路径的参数值

时间:2016-05-03 16:20:59

标签: java jsp parameter-passing jsp-tags taglib

我有一个自定义JSP标记,通过taglib,它接受一个参数。我需要修改传递的值以包含上下文路径。不幸的是,这样做时我收到了HTTP 500错误。

<%@ taglib uri="/taglibrary.tld" prefix="custom" %>
<custom:redirect uri="<%=request.getContextPath()%>/foobar.jsp" />

只是传递上下文路径或页面本身,但不是两者一起工作。

// Good
<custom:redirect uri="<%=request.getContextPath()%>" />
// Good
<custom:redirect uri="foobar.jsp" />

// Bad
<custom:redirect uri="<%=request.getContextPath()%>/foobar.jsp" />
// Bad
<custom:redirect uri="<%=request.getContextPath()%>" + "/foobar.jsp" />

如何在运行中连接两个并将其设置为uri参数?或者,除了创建一个新的字符串,其值是上下文路径和页面然后将所述字符串传递给uri参数之外没有别的办法吗?

仅供参考:我正在使用Servlet 2.4。因此,对于这个旧版本,可能无法进行某些JSTL或EL操作。

非常感谢您的帮助。

更新

我能够使用scriplets让它工作:

<custom:redirect uri="<%=request.getContextPath() + \"/foobar.jsp\" %>" />

但我们都知道scriplets是不好的做法。不太确定如何使用直线EL工作。

谢谢。

0 个答案:

没有答案