2015-08-14 46 views
0

我在jsp页面中弹出url标记时遇到问题。 这是我的index.jsp页面: spring:url显示错误的URL

<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

<spring:url var="registrationUrl" value="/register"/> 

<!DOCTYPE html> 
<html> 
<body> 
<h2>Index page</h2> 
    <a href="${registrationUrl}">Register</a> 
</body> 
</html> 

点击 “注册” 链接我的网址格式后看起来是这样的:而不是 http://localhost:8080/$%7BregistrationUrl%7D

http://localhost:8080/register

这样的问题:我错过了什么?

+0

您确定该页面正在作为JSP进行处理,而不是以纯静态HTML格式发送?你可以在浏览器的“查看源代码”中查看它,并确保所有的脚本都消失了吗? – RealSkeptic

+0

是的,我在浏览器中查看该页面看起来像纯HTML –

回答

0

我找到了解决办法。我没想到,但问题出现在我的web.xml中。它使用的旧XML模式:

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

,所以我replice这最新的架构:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     version="2.5"> 

感谢所有尝试帮助我。 P.S.对不起,我的坏engilsh。

0
<spring:url value="/something" var="url" htmlEscape="true"/> 
<a href="${url}">...</a> 

<c:url value="/something" var="url"/> 
<a href="<c:out value='${url}'/>">...</a> 

c:url和spring:url之间的一个重要区别是,c:url不会对所创建的url进行html编码。但是对于有效的url,url参数之间的&必须是&。所以你需要c:out来逃避它。 - 在春天:你已经包含了这个功能的url(如果我理解文档正确的话)。

+0

我试图使用两种样式但效果相同。 –

0

您可能会尝试将htmlEscape="true"添加到您的spring:url标记中。 应该是你的具体情况:

<spring:url var="registrationUrl" value="/register" htmlEscape="true"/> 

可能是重复的另一计算器线程。请参阅: How to use <spring:url /> with an <a> tag?

山姆

+0

加入htmlEscape =“true”后效果相同( –