Spring PetClinic <spring:url ...... =“”>编码非常url </spring:url>

时间:2013-11-23 02:52:03

标签: java spring url java-ee spring-mvc

我正在实施here

的Spring Pet Clinic Sample项目

实施here

在主页中,所有网址都由<spring:url />标记进行编码。我只是想确认编译链接是一个很好的编程习惯,甚至是spring:url标签的简单导航网址,还是出于某种特定原因?

1 个答案:

答案 0 :(得分:8)

是的,这是一个很好的做法。该标记是一个Spring JSP标记,用于创建具有JSTL c:url增强功能的URL。  <c:url>标记用于创建网址,如果客户端关闭了Cookie,则会有所帮助,并且您需要重写将从jsp页面返回的网址。 如有必要,重写的URL将对会话ID进行编码,以提供持久会话。

例如,您的网址将显示为:

<c:url value="a.jsp">

/context/a.jsp // when cookies is enabled
/context/a.jsp;jsessionid=B01F432.... // when cookie is disabled

这样,servlet容器可以跟踪用户请求。另一个重要的事情是c:url将为上下文根添加前缀,因此您无需在任何地方编写根上下文前缀。

就像我说的,<spring:url>包含一些JSTL的增强功能,例如编码的URI模板变量。

<spring:url value="/url/path/{variableName}">
   <spring:param name="variableName" value="more than JSTL c:url" />
 </spring:url>

结果:/ currentApplicationContext / url / path / more%20than%20JSTL%20c%3Aurl

在此处查看更多详情:http://docs.spring.io/spring/docs/3.1.4.RELEASE/javadoc-api/org/springframework/web/servlet/tags/UrlTag.html