我现在正在处理一个问题而且我无法理解为什么我的收藏品没有正确显示我的输入,它只显示最后一个条目。让我告诉你我的代码。
首先,有2个JSP(inputsubjects.jsp和schedule.jsp),2个Servlet(LE4Servlet1和LE4Servlet2)和1个Plain Java类(Subjects.java)。
对于inputsubjects.jsp:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form method="post">
Subject Code: <input type="text" name="inputSC">
<br><br>
Description: <input type="text" name="inputDesc">
<br><br>
Unit(s): <input type="text" name="inputUnit">
<br><br>
<center>
<input type="SUBMIT" value="Save and Add" formaction="LE4Servlet1">
<input type="SUBMIT" value="Save and Exit" formaction="LE4Servlet2">
</center>
</form>
</body>
</html>
对于schedule.jsp :(对于这个jsp,数据应该以表格形式显示,但我不知道如何创建动态表,所以在这段代码中我试图看看是否我的java类工作,不幸的是它没有。)
<%@page import="java.util.Iterator"%>
<%@page import="java.util.Set"%>
<%@page import="foo.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<%
Set output1 = (Set)request.getAttribute("output1");
Iterator it1 = output1.iterator();
out.println("<br>Subject Code: ");
while(it1.hasNext())
{
out.println(it1.next());
}
Set output2 = (Set)request.getAttribute("output2");
Iterator it2 = output2.iterator();
out.println("<br>Description: ");
while(it2.hasNext())
{
out.println(it2.next());
}
Set output3 = (Set)request.getAttribute("output3");
Iterator it3 = output3.iterator();
out.println("<br>Unit(s): ");
while(it3.hasNext())
{
out.println(it3.next());
}
%>
</body>
</html>
因此有2个按钮,“保存并添加”按钮获取输入的数据并仅将数据放入集合中并接受另一个输入,而“保存并退出”按钮执行相同操作但用于最后一个条目并将重定向到您到schedule.jsp,它将显示你输入的数据。
对于LE4Servlet1和LE4Servlet2(它们具有相同的代码,但RequestDispatcher除外):
String inputsc = request.getParameter("inputSC");
String inputdesc = request.getParameter("inputDesc");
String inputunit = request.getParameter("inputUnit");
int x = Integer.parseInt(inputunit);
Subjects subj = new Subjects(inputsc,x,inputdesc);
Set isc = subj.getCode(inputsc);
Set id = subj.getDesc(inputdesc);
Set iu = subj.getUnit(x);
request.setAttribute("output1", isc);
request.setAttribute("output2", id);
request.setAttribute("output3", iu);
RequestDispatcher view = request.getRequestDispatcher("inputsubjects.jsp");
view.forward(request, response);
现在这里是我的Subjects.java代码,我认为问题出在哪里。
对于Subjects.java:
public class Subjects
{
private String code;
private int unit;
private String description;
public Subjects(String code, int unit, String description)
{
this.code = code;
this.unit = unit;
this.description = description;
}
public Set getCode(String inputSC)
{
Set code = new HashSet();
code.add(inputSC);
return code;
}
public Set getUnit(int inputUnit)
{
Set unit = new HashSet();
unit.add(inputUnit);
return unit;
}
public Set getDesc(String inputDesc)
{
Set desc = new HashSet();
desc.add(inputDesc);
return desc;
}
}
我非常感谢你的帮助,因为我想学习很多关于网络开发的知识,而且因为我还是学生,所以我真的遇到了问题。抱歉,这个问题很长:(
注意:请不要接受这个问题,因为我只能通过我的任务,但是我问这个问题,让我了解更多关于网络开发的信息,因为我对它充满热情和我希望有一天成为一名Web开发人员:)
注意:我在此项目中使用NetBeans IDE 8.1。