<html:link href="/dnweb/displayFindDeviceId.do" styleClass="small" onclick="appendHref(this)">
<bean:message key="link.find"/>
</html:link>
以上代码的上下文名称为“/ dnweb”。这是硬编码的。但我动态地需要它。
如果您将上下文名称更改为项目。必须自动更改。我该怎么做呢。
我的代码为
<html:link href="${pageContext.request.contextPath}/displayFindDeviceId.do"
但这是错误的。
答案 0 :(得分:2)
您不需要pageContext
。只需使用${request.contextPath}
请注意,对于旧版本的JSP,您可能需要设置:
<%@ page isELIgnored="false" %>
但是尝试升级servlet容器以支持更新版本。
答案 1 :(得分:0)
这是一个Struts1标签,不是吗?如果是这样,那么您应该使用action
或page
属性来使用与上下文相关(甚至与模块相关的)URL。有关详细信息,请参阅http://struts.apache.org/1.x/struts-taglib/tagreference.html#html:link。
答案 2 :(得分:0)
我使用html taglib标签设置上下文路径我可以使用scriptliet标签(如
)使用变量设置上下文路径我在这里使用变量urlName来收集contextPath。
<jsp:useBean id="urlName" class="java.lang.String" scope="page" />
<% urlName= request.getContextPath() + "/displayFindDeviceId.do"; %>
<html:link href="<%=urlName %>" styleClass="small" onclick="appendHref(this)">
<bean:message key="link.find"/>
</html:link>
根据此代码,它在我的localhost中正常工作。
感谢Bozho和JB。
答案 3 :(得分:0)
$ {pageContext.request.contextPath} 为我工作(春季版4.3.5.RELEASE和jstl版本1.2)。设置为ELIgnored =&#34; false&#34;仍然需要。