Java 春季宠物诊所<;spring:url……/>;为每个url编码
我正在实施所给的Spring宠物诊所示例项目 实施Java 春季宠物诊所<;spring:url……/>;为每个url编码,java,spring,url,jakarta-ee,spring-mvc,Java,Spring,Url,Jakarta Ee,Spring Mvc,我正在实施所给的Spring宠物诊所示例项目 实施 在主页中,所有URL都由标记编码。我只想确认,通过spring:url标记对链接(甚至是简单的导航url)进行编码是一种良好的编程实践,还是出于特定原因进行编码?是的,这是一种良好的实践。该标记是一个springjsp标记,用于创建带有JSTLc:url增强功能的url。 标记用于创建url,在客户端关闭Cookie时非常有用,您需要重写从jsp页面返回的url。 如果需要提供持久会话,重写的URL将对会话ID进行编码 例如,您的URL将显示为
在主页中,所有URL都由
标记编码。我只想确认,通过spring:url标记对链接(甚至是简单的导航url)进行编码是一种良好的编程实践,还是出于特定原因进行编码?是的,这是一种良好的实践。该标记是一个springjsp标记,用于创建带有JSTLc:url
增强功能的url。
标记用于创建url,在客户端关闭Cookie时非常有用,您需要重写从jsp页面返回的url。
如果需要提供持久会话,重写的URL将对会话ID进行编码
例如,您的URL将显示为:
<c:url value="a.jsp">
/context/a.jsp // when cookies is enabled
/context/a.jsp;jsessionid=B01F432.... // when cookie is disabled
结果为:/currentApplicationContext/url/path/超过%20JSTL%20c%3URL
请参阅此处的更多详细信息:感谢您的回复,Lucas,我只是有一个疑问:如果会话未创建,该怎么办?我刚刚访问了应用程序的索引页。在这个场景中,spring:url标记将返回什么。当您第一次请求时,带有c:url标记的链接将被重写以添加jsessionid参数。此时,服务器不确定客户端是否支持cookie,因此它会在URL上生成cookie和jsessionid。
<spring:url value="/url/path/{variableName}">
<spring:param name="variableName" value="more than JSTL c:url" />
</spring:url>