2017-01-15 69 views
0

我想在jsp元素中使用頁面指令值(例如,值'i'用於名稱='hidden'的文本框中),它將用於計算不成功嘗試的總次數。如何在jsp元素中使用頁面指令值?

<%@ page contentType="text/html; charset=UTF-8"%> 
<%@ taglib prefix="s" uri="/struts-tags"%> 
<%@ page session="true" %> 
<html> 
<head> 
<title>Login Application </title> 
</head> 

<body> 
<h2>Login Application</h2> 
<s:actionerror /> 
     <% 
     Integer i = (Integer)application.getAttribute("i"); 
     if (i == null) { 
      i = new Integer(1); 
     } else { 
      i = new Integer(i.intValue() + 1); 
     } 
     application.setAttribute("i", i); 

     session.setAttribute("attemp", i); 
     out.println("Attemp :::::"+ session.getAttribute("attemp")); 
     %> 
<s:form action="login.action" method="post"> 
    <s:textfield name="username" key="label.username" size="20" /> 
    <s:password name="password" key="label.password" size="20" /> 
    <s:submit method="doGet" key="label.login" align="center" /> 
    <s:textfield id="hidden" name="hidden" value="<%=i %>" /> 
</s:form> 
</body> 
</html> 

回答

0

使用Scriplet已經過時
你能避免小腳本訪問在struts的方式應用和會話,不要忘記使用#在訪問ApplicationSession或者Request範圍變量
這裏我試圖避免Scriplet的代碼,也請在訪問Application變量時確認...
對於幫助參考https://struts.apache.org/docs/accessing-application-session-request-objects.html

<s:if test="%{#application.i == null}"> 
    <s:set name="i" value="1" scope="application" /> 
</s:if> 
<s:else> 
    <s:set name="i" value="%{#application.i + 1}" scope="application" /> 
</s:else> 

<s:set name="attemp" value="%{#application.i}" scope="session" /> 

並設置hiddentextfield爲:

<s:textfield id="hidden" name="hidden" value="%{#application.i}" />