如何在jsp元素中使用page指令值?

时间:2017-01-15 16:55:32

标签: jsp jsp-tags

我想在jsp元素中使用page指令值(例如,值' i'用于名称=' hidden'的文本框中),这将用于计算总数不成功的尝试。

<%@ 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>

1 个答案:

答案 0 :(得分:0)

使用Scriplet已过时了 您可以避免scriptlet以struts方式访问Application和Session,在访问 #Application 时不要忘记使用 Session 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" />

并将hidden textfield设为:

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