我从 Java Server Pages 开始。我想制作一个登记表,由三个步骤组成。第一页index.jsp 是一个注册表单,有两个字段:Name 和Surname。完成这两个字段后,我按“下一步”并转到下一页 PaginaDoi.jsp,在其中填写“地址”和“电话”字段。之后,我进入第三页 PaginaTrei.jsp,其中显示所有数据,然后发送到数据库或后退一步修改数据。
我想做的主要事情是在使用“下一步”和“后退”按钮前后移动后存储所有未修改的字段。为此,我进行了一次 session ,工作正常,但是当我从第三页返回到第二页时,我的姓名和姓氏重置为空。 我呆了大约一天来了解我在哪里犯了错误,但没有成功。请帮助我。
我提供以下代码:
index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="main.css" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script language="javascript" type="text/javascript">
function validateForm(){
var x=document.forms["formular"]["nume","prenume"].value;
if(x==null||x==""){
alert("Toate campurile sunt necesare");
return false;
}
}
</script>
<title>Formular de inregistrare</title>
</head>
<body>
<h1>Introduceti datele in campurile respective</h1>
<form name="formular" action="PaginaDoi.jsp" onsubmit="return validateForm()" method="post">
Nume: <input type="text" name="nume" value="<%=session.getAttribute("FirstName")!=null? session.getAttribute("FirstName"):""%>" maxlength="15"></br>
Prenume: <input type="text" name="prenume" value=" <%=session.getAttribute("LastName")!=null?session.getAttribute("LastName"):""%>" maxlength="10"></br>
<div id="subm"><input type="submit" value="Inainte"></div>
</form>
</body>
</html>
第二页 (PaginaDoi.jsp)
<%String fname=request.getParameter("nume");
session.setAttribute("FirstName",fname);
String lname=request.getParameter("prenume");
session.setAttribute("LastName",lname);
%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="main.css" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script language="javascript" type="text/javascript">
function validateForm(){
var x=document.forms["formular"]["telefon","adresa"].value;
if(x==null||x==""){
alert("Toate campurile sunt necesare");
return false;
}
}
</script>
<title>Formular de inregistrare</title>
</head>
<body>
<h1>Introduceti datele in campurile respective</h1>
Nume: <%=session.getAttribute("FirstName")%></br>
Prenume: <%=session.getAttribute("LastName")%></br>
<form name="formular" action="PaginaTrei.jsp" onsubmit="return validateForm()" method="post">
Telefon: <input type="text" name="telefon" value=" <%=session.getAttribute("ThePhone")!=null?session.getAttribute("ThePhone"):""%>" maxlength="10"></br>
Adresa: <input type="text" name="adresa" value=" <%=session.getAttribute("TheAddress")!=null?session.getAttribute("TheAddress"):""%>" maxlength="20"></br>
<div id="subm"><input type="submit" value="Inainte"></div>
</form>
<form action="index.jsp" method="post">
<div id="submInapoi"><input type="submit" value="Inapoi"></div>
</form>
</body>
</html>
第三页 (PaginaTrei.jsp)
<%
String tel=request.getParameter("telefon");
session.setAttribute("ThePhone",tel);
String add=request.getParameter("adresa");
session.setAttribute("TheAddress",add);
%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="main.css" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Datele introduse</title>
</head>
<body>
<h1>Introduceti datele in campurile respective</h1>
Nume: <%=session.getAttribute("FirstName")%></br>
Prenume: <%=session.getAttribute("LastName")%></br>
Telefon: <%=session.getAttribute("ThePhone")%></br>
Adresa: <%=session.getAttribute("TheAddress")%></br>
<form action="Salveaza.jsp" method="post">
<div id="subm"><input type="submit" value="Trimite"></div>
</form>
<form action="PaginaDoi.jsp" method="post">
<div id="submInapoi"><input type="submit" value="Inapoi"></div>
</form>
</body>
</html>
最佳答案
虽然我不建议您这样做,但如果您在第二页中查看,您将根据请求参数在 session 中设置属性。如果第三个表单上有一个指向第二个表单的链接,则您的请求参数将为空,并且您实际上是在此时从 session 中删除信息。
你必须这样做:
if (tel != null) session.setAttribute("ThePhone",tel);
等等
关于java - 使用Java Server Pages,提交后如何制作 "register"表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23524507/