我有一个自定义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工作。
谢谢。