jsp中的会话在getAttribute上获取null值

时间:2013-06-17 13:39:47

标签: jsp session session-variables

我有addedit.jsp页面

我在一个textarea中插入myinput

your input
    <input id="thistextfield" type="text"  name="ruleField" size="20" >
    <input type = "submit" name = "submit" value = "submit">

<a href="SaveName.jsp">to savename</a>

我的会话存储在此页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.lang.String" %>

<%
    String ruleField = request.getParameter( "ruleField" );
    session.setAttribute( "theName", ruleField );


%>
<html>
<head>
    <title></title>
</head>
<body>
<a href="test2.jsp">Continue</a>
</body>
</html>

这是我的text2页面。 我应该回到会议地点

Hello,<textarea > <%= session.getAttribute("theName")%>  </textarea>

但问题是我在textarea中得到一个空值。 我正在使用IntelliJIdea 12,并且getParameter和getAttribute显示为红色,因为无法解析方法。

1 个答案:

答案 0 :(得分:1)

您错过了addedit.jsp中的HTML表单标记。因此,当您单击链接'to savename'时,您没有将表单数据'ruleField'作为参数发送到请求中,您没有发送任何数据,这就是它为空的原因。

对addedit.jsp进行以下更改:

<form method="GET" action="SaveName.jsp">
    <input id="thistextfield" type="text"  name="ruleField" size="20" >
    <input type = "submit" name = "submit" value = "submit">
</form>

并删除以下HTML(这是多余的):

<a href="SaveName.jsp">to savename</a>

我原本以为您可能想要使用链接来提交表单而不是按钮。以下是使用链接提交表单的替代代码。

<form method="GET" action="SaveName.jsp" id="form1">
    <input id="thistextfield" type="text"  name="ruleField" size="20" >
</form>

<div onclick="document.getElementById('form1').submit()">to savename</div>