-1

我在 Spring web flow 中使用了磁贴。这是我的标准 jsf 文件。

标准.xhtml

      <f:view contentType="text/html">

   <h:head >
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Nagra Employee Leave Application</title>
<link rel="stylesheet" href="${request.contextPath}/styles/blueprint/screen.css" type="text/css" media="screen, projection" />
<link rel="stylesheet" href="${request.contextPath}/styles/blueprint/print.css" type="text/css" media="print" />

<link rel="stylesheet" href="${request.contextPath}/styles/le-frog/jquery-ui-1.8.2.custom.css" type="text/css" media="screen" />
<ui:insert name="headIncludes"/>
<style>

</style>
  </h:head>
   <h:body  style="background:#343433" >
   <div class="container" style="background:white;">


    <a href="#{request.contextPath}"><img src="${request.contextPath}/images/rubon1.jpg" height="200" width="950" alt="Spring Travel"/></a>


<div>
    <div id="local" class="span-4 colborder" style="padding-top: 20px;
    padding-left: 21px;">
        <h3>Nagra Vision</h3>
        <ui:insert name="notes"/>
    </div>
    <div class="span-19 last" style="width: 720px;">
        <ui:insert name="content"/>
    </div>
</div>

<div>
    <a href="http://www.nagra.com">
        <img src="${request.contextPath}/images/nagra_footer.png" alt="Powered by Nagra-India" />
    </a>
</div>
 </div>
 </h:body>

登录.xhtml

 <ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
template="/WEB-INF/layouts/standard.xhtml">

<ui:define name="content">
    <h:form style="margin-top:10px;">
        <div>
            <h:outputLabel for="username">Username:    </h:outputLabel>
            <h:inputText id="username" value="#{userInfo.username}">          </h:inputText>
        </div>
        <div>
            <h:outputLabel for="password">Password:    </h:outputLabel>
            <h:inputSecret id="password" value="#{userInfo.password}">
            </h:inputSecret>
        </div>
        <div>

            <h:selectBooleanCheckbox id="leavetype"
                value="#{userInfo.loginperson}">
                <f:selectItems value="#{referenceData.loginPersonOptions}" />
            </h:selectBooleanCheckbox>
            <h:outputLabel for="password">Select you are a manager</h:outputLabel>
        </div>

        <div>
            <p:commandButton id="Signin" action="click" value="Sign In"
                style="margin-left:80px;" />
        </div>
    </h:form>
</ui:define>

主页.xhtml

 <ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
template="/WEB-INF/layouts/standard.xhtml">
<ui:define name="notes">
    <h:outputLabel for="employee">${loginperson.username}</h:outputLabel>
    <h:form>
    <div>   <h:commandLink value="Sick Leave" action="sickleave" id="sickleave" /></div>
    <div>   <h:commandLink value="Paid off Leave" action="paidleave" id="paidleave" /></div>
    <div>   <h:commandLink value="Logout" action="logout" id="logout" /></div>
    </h:form>



</ui:define>
<ui:define name="content">
     <h2 style="font-size: 16px; font-weight: bold; margin-top: 100px;">Available
        Leave</h2>




    <h:dataTable value="#{leaveavailable}" var="a"
        styleClass="order-table" headerClass="order-table-header"
        rowClasses="order-table-odd-row,order-table-even-row"
        columnClasses="order-table-odd-column,order-table-even-column">
        <h:column>
            <f:facet name="header">
                Sick Leave
            </f:facet>
                #{a.totalSickLeave}
        </h:column>
        <h:column>
            <f:facet name="header">
                Paidoff Leave
            </f:facet>
                #{a.totalPaidoffLeave}
        </h:column>
    </h:dataTable>



</ui:define>

这里一旦用户登录用户将看到mainpage.xhtml。用户进入主页后,如果他按下浏览器的后退按钮,它会将我带到登录页面。所以我需要禁用后退按钮。我不要在哪里添加javascript代码以禁用浏览器后退按钮。我必须添加mainpage.xhtml还是standard.xhtml。

我必须添加什么java脚本来禁用后退按钮

4

4 回答 4

2

禁用后退按钮是不可能的 - 看看这里,从用户体验的角度来看,这也可能是一个坏主意,所以没有太大的损失。试图这样做被列为1999 年网页设计的第一大错误

于 2012-07-20T06:53:00.563 回答
1

您不能禁用后退按钮。但是,您可以从浏览器历史记录中删除当前文档,并使用window.location.replace. 请记住,在这种情况下您需要使用 AJAX,因为replace必须从要替换的文档中调用。

与其干预 JavaScript 并试图破坏用户的浏览器,不如在服务器端检查用户是否已经登录并将他重定向到您的主页?

于 2012-07-20T06:54:58.587 回答
0

如果适合您的情况,您可以尝试关注。

  1. 通过设置适当的 http 无缓存技巧来停止缓存页面,请参阅文章
  2. 登录后,您将在会话中存储一些信息,因为当用户单击后退按钮时您不会缓存页面,新请求将被发送到服务器,在处理登录页面请求时您可以检查,如果已经登录重定向到一些不同的页面。

希望这可以帮助 !!!

于 2012-07-20T08:38:10.717 回答
-1
Just try this,it works fine for me :)
Disable Back functionality using history.forward

这是在任何网页中禁用返回功能的另一种技术。我们可以通过在网页中添加以下代码来禁用后退导航。现在要注意的是,您必须在要避免用户从上一页返回的所有页面中添加此代码。例如,用户跟随导航 page1 -> page2。并且您想阻止用户从 page2 返回到 page1。在这种情况下,page1 中的所有以下代码。

<SCRIPT type="text/javascript">
    window.history.forward();
    function noBack() { window.history.forward(); }
</SCRIPT>
</HEAD>
<BODY onload="noBack();"
onpageshow="if (event.persisted) noBack();" onunload="">

上面的代码将触发 page1 的 history.forward 事件。因此,如果用户在 page2 上按下 Back 按钮,他将被发送到 page1。但是 page1 上的 history.forward 代码将用户推回到 page2。因此,用户将无法从 page1 返回。要查看在线演示 - http://viralpatel.net/blogs/demo/javascript-disable-browser-back-button/

于 2014-12-04T08:58:59.687 回答