【问题标题】:j_security_check url problemj_security_check url 问题
【发布时间】:2011-04-01 09:35:17
【问题描述】:

希望您能帮我解决这个问题: 我正在使用 j_security_check 并遇到此问题

我有一个个人资料页面,必须限制为任何未登录的用户, 所以我在 web.xml 文件中添加了一个安全约束并且工作正常 如果我尝试通过地址栏访问,这将显示登录页面完全正常

现在的问题是:在我的索引页面示例中:

http://localhost/mySite/index.xhtml

有链接

<h:commandLink action="user/Profile" />

这会将我重定向到个人资料页面,但 URL 仍然相同

http://localhost/mySite/index.xhtml

所以 j_security_check 不显示登录页面 据我所知,j_security_check 适用于 url 而 jsf 不适用 如果在个人资料页面中按下指向 ex:myImages 的链接,那么现在 url 会显示:

例如:http://localhost/mySite/user/Profile.xhtml

为什么会这样?有没有什么办法解决这一问题 ?? 提前致谢

我一直在使用的另一种方法是点赞

<a href="user/Profile.xhtml" >Profile</a>

这显示了登录页面,但如果我转到 index.xhtml 并按配置文件,则找不到该页面,因为会将我重定向到:

例如:http://localhost/mySite/user/user/Profile.xhtml

【问题讨论】:

    标签: jsf j-security-check


    【解决方案1】:
    <h:commandLink action="user/Profile" />
    

    h:commandLinkh:commandButton当前 页面触发 HTTP POST 请求(由h:form),该页面又转发给定资源。

    您不想使用 POST 进行逐页导航。这不仅是糟糕的用户体验(URL 不会改变,在浏览器历史中后退/前进时行为不直观),而且对 SEO 不友好(搜索机器人不索引 POST)。

    如果您根本不需要任何 JSF 风格的功能,您需要将其替换为 h:outputLink,或者如您所见,用一个简单的 &lt;a&gt; 元素替换。

    关于您最后一个指向错误 URL(路径重复)的问题:当您使用 h:outputLink 时,此问题已解决。然后 JSF 会考虑当前的上下文路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-29
      • 2016-02-05
      • 2012-11-17
      • 2013-05-25
      • 2010-09-12
      • 2013-03-30
      • 1970-01-01
      • 2012-03-20
      相关资源
      最近更新 更多