我正在实施here
的Spring Pet Clinic Sample项目实施here
在主页中,所有网址都由<spring:url />
标记进行编码。我只是想确认编译链接是一个很好的编程习惯,甚至是spring:url标签的简单导航网址,还是出于某种特定原因?
答案 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