【问题标题】:HttpUtil.encodeUrl not appending jsessionid when cookies are disabled?禁用cookie时HttpUtil.encodeUrl不附加jsessionid?
【发布时间】:2011-01-07 23:19:32
【问题描述】:

我正在开发一个 liferay 主题,我必须在该主题上放置一些指向其他页面的链接。现在我想把那些链接像${httpUtil.encodeUrl("\myPage"")}. 但是当我禁用cookie并访问页面时,我仍然看到没有jsessionid附加到myPage url的页面。有谁知道为什么会发生这种情况以及可能的解决方案?

我也尝试了一些速度函数,但没有成功。

【问题讨论】:

    标签: java liferay velocity


    【解决方案1】:

    如果你使用jsp渲染你的页面,那么你必须使用<c:url>来打印url。

    添加: 如果你不能使用<c:url>,你需要自己动手,那么看看<c:url>的实现。

    添加: 在 JSP 中,您必须通过 <c:out> “wapp”<c:url> 以正确格式化增强的(按会话 ID)url。

    <c:url var='urlWithSession' value='\myPage' />
    <a href="<c:out value='${urlWithSession}'/>">my page</a>
    

    【讨论】:

    • liferay 主题使用 .vm 文件,稍后由 liferay 自己解析。但它似乎无法处理 (我试过那个)。虽然我当然同意 c:url 和 httpUtil.encodeUrl 会更简洁,但后者也应该可以解决问题。
    • 一种方法是手动实现会话 ID 的附加。 -- 但我希望你找到更好的解决方案。
    • 正在寻找一个。 ${} 似乎被解析了。但是 被视为普通税...
    • 在 jsp 中你需要用 包装它
    • 我的意思是我得到了:我的页面
    猜你喜欢
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 2012-07-28
    • 2016-09-01
    • 2014-03-27
    • 1970-01-01
    相关资源
    最近更新 更多