Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp Servlet路径不包括在<;c:url>;_Jsp_Url_Servlets_Jstl - Fatal编程技术网

Jsp Servlet路径不包括在<;c:url>;

Jsp Servlet路径不包括在<;c:url>;,jsp,url,servlets,jstl,Jsp,Url,Servlets,Jstl,我有一个简单的JavaWebApp(例如,test),其中包含两个不同的SpringMVC应用程序 My web.xml将它们映射为: <servlet-mapping> <servlet-name>web</servlet-name> <url-pattern>/web/*</url-pattern> </servlet-mapping> <servlet-ma

我有一个简单的JavaWebApp(例如,
test
),其中包含两个不同的SpringMVC应用程序

My web.xml将它们映射为:

    <servlet-mapping>
        <servlet-name>web</servlet-name>
        <url-pattern>/web/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>restful</servlet-name>
        <url-pattern>/restful/*</url-pattern>
    </servlet-mapping>
链接呈现为
/test/browse
,而不是
/test/web/browse

我错过了什么

谢谢

这个
确实没有考虑servlet路径。这是你自己的责任。
仅考虑以下因素

要么自己硬编码:

<c:url value="/web/browse" />
或者,如果您正在转发,则内联结果为:



如有必要,可在自定义标记中换行以保存样板文件。

它将按照您指定的方式呈现。你在web.xml中所说的不会导致任何URL重写,只会在内容名称前面加上前缀。是的,我已经在使用了,但是如果明天我需要修改web.xml的映射,这可能会是一个真正的问题。。。第二个选项似乎更好,因为它与配置无关。对不起,第二个选项不起作用。。。我在用瓷砖。。。所以如果我写了你的建议,链接就会变成…是的,你的答案很好。。。顺便说一句,从“编程舒适性”和代码的可重用性来看,我认为自定义标记是最好的主意。。。我写这个问题是因为,在我看来,在标准taglib中没有这个选项是非常奇怪的。。。所以我觉得我错过了什么…:)JSTL不是支持MVC的标记库。然而,JavaEE的MVC框架JSF有一堆您正在寻找的标记。例如,
,当只指定视图文件的服务器端路径时,它生成一个带有正确URL的HTML
元素,并完成上下文路径和servlet映射。我的问题不取决于MVC:它只是相对于servlet映射。所以说“JSTL不是一个支持servlet映射的库”是正确的是的,我知道JSF非常丰富,但是(在我看来)如果您没有使用组件的经验(比如.net,仅举一个例子),我认为使用JSF非常方便。
<c:url value="/web/browse" />
<c:url value="${pageContext.request.servletPath}/browse" />
<c:url value="${requestScope['javax.servlet.forward.servlet_path']}/browse" />