JSF Spring安全注销按钮

时间:2010-07-19 22:19:48

标签: jsf spring-security

如何将以下内容从链接转换为按钮?

<h:outputLink value="#{request.contextPath}/j_spring_security_logout">Logout</h:outputLink>

如果我尝试添加导航规则,则无法找到j_spring_security_logout ...

2 个答案:

答案 0 :(得分:3)

使用CSS将链接样式设置为按钮。

<h:outputLink styleClass="button">

类似

a.button {
    display: inline-block;
    background: lightgray;
    border: 2px outset lightgray;
    cursor: default;
}
a.button:active {
    border-style: inset;
}

或带来简单的香草HTML表格:

<form action="#{request.contextPath}/j_spring_security_logout">
    <input type="submit" value="Logout">
</form>

答案 1 :(得分:0)

另一个解决方案是:

<p:button value="Logout with spring" outcome="logout"></p:button>

并且不要忘记设置它 的 面-config.xml中

  <navigation-rule>
    <from-view-id>/your/path/index.xhtml</from-view-id>
      <navigation-case>
          <from-outcome>logout</from-outcome>
          <to-view-id>/j_spring_security_logout?faces-redirect=true</to-view-id>
      </navigation-case>
 </navigation-rule>

如果您忘记添加“?faces-redirect = true”,则会收到错误。因为您被重定向到“http://localhost/projectNmae/j_spring_security_logout.xhtml”。所以您应该使用它。
如果你想使用“p:commandButton” ,你必须使用managedBean返回结果。
(返回“logout”;)