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

und*_*dog 3 java url spring spring-mvc java-ee

我正在实施这里给出的Spring Pet Clinic Sample项目

在这里实施

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

Luc*_*ira 8

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

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

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

/context/a.jsp // when cookies is enabled
/context/a.jsp;jsessionid=B01F432.... // when cookie is disabled
Run Code Online (Sandbox Code Playgroud)

这样,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>
Run Code Online (Sandbox Code Playgroud)

结果:/ 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