我有LookupStudent.jsp根据某些条件搜索和列出学生。
这个jsp有一个到另一个jsp的ref链接,UpdateStudent.jsp。
我想
请帮助您如何实现这一目标?
LookupStudent.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Lookup Students</title>
</head>
<body class="body">
<form method="get" action="LookupStudentServlet">
<table border="0">
<tr align="left" valign="top">
<td>Student Name:</td>
<td><select name="fnameOperator">
<option value="Eq">Equals</option>
<option value="Sw">Starts With</option>
<option value="Ew">Ends With</option>
<option value="Co">Contains</option>
</select></td>
<td><input type="text" name="fname" /></td>
</tr>
<tr align="left" valign="top">
<td></td>
<td><input type="submit" name="submit" value="submit" /></td>
</tr>
</table>
</form>
<!-- List results -->
<c:if test="${not empty studentList}">
<table border="1" cellspacing="0" cellpadding="0" :>
<tr>
<th>ID</th>
<th>Title</th>
<th>First Name</th>
<th>Last Name</th>
</tr>
<c:forEach var="students" items="${studentList}">
<tr>
<td>${students.studentID}</td>
<td>${students.title}</td>
<td>${students.firstName}</td>
<td>${students.lastName}</td>
<td><c:url value="UpdateStudent.jsp" var="url">
<c:param name="StudentID" value="${students.studentID}" />
</c:url> <a href="${url}">edit</a>
</tr>
</c:forEach>
</table>
</c:if>
<p>There are ${fn:length(studentList)} results.</p>
</body>
</html>
LookupStudentServlet.java
package org.cms.controller;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.cms.model.StudentDAO;
/**
* Servlet implementation class ListStudent
*/
@WebServlet("/LookupStudentServlet")
public class LookupStudentServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
String fnameOperator = request.getParameter("fnameOperator");
//System.out.println(fnameOperator);
String fname = request.getParameter("fname");
String condition = "where 1=1 ";
if (fname!=null||fname.length()>0) {
if (fnameOperator.equalsIgnoreCase("Eq")) {
condition =condition+ "and first_name = '"+fname+"'";
}
else if (fnameOperator.equalsIgnoreCase("Sw")) {
condition =condition+ "and first_name like '"+fname+"%'";
}
else if (fnameOperator.equalsIgnoreCase("Ew")) {
condition =condition+ "and first_name like '%"+fname+"'";
}
else if (fnameOperator.equalsIgnoreCase("Co")) {
condition =condition+ "and first_name like '%"+fname+"%'";
}
}
//System.out.println(condition);
StudentDAO student = new StudentDAO();
List<StudentDAO> students = student.lookupStudent(condition);
request.setAttribute("studentList", students);
} catch (SQLException sqle) {
request.setAttribute("error", "Retrieving Students failed.");
sqle.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
finally {}
request.getRequestDispatcher("LookupStudent.jsp").forward(request, response);
}
}
UpdateStudent.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Lookup Students</title>
</head>
<link rel="stylesheet" href="css/style.css" type="text/css"></link>
<body class="body">
<form method="get" action="UpdateStudent" class="form">
<table border="0">
<tr align="left" valign="top">
<td>Student ID:</td>
<td><input type="text" name="StudentID" /></td>
</tr>
<tr align="left" valign="top">
<td>Title:</td>
<td><input type="text" name="Title" /></td>
</tr>
<tr align="left" valign="top">
<td>First Name:</td>
<td><input type="text" name="Fname" /></td>
</tr>
<tr align="left" valign="top">
<td>Last Name:</td>
<td><input type="text" name="Lname" /></td>
</tr>
<tr align="left" valign="top">
<td></td>
<td><input type="submit" name="submit" value="submit"
class="fb8" /></td>
</tr>
</table>
</form>
</body>
</html>
UpdateStudentServlet.java
package org.cms.controller;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.cms.model.StudentDAO;
/**
* Servlet implementation class ListStudent
*/
@WebServlet("/UpdateStudentServlet")
public class UpdateStudentServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
int studentID;
studentID = Integer.parseInt(request.getParameter("StudentID"));
//System.out.println(fnameOperator);
String condition = "where 1=1";
condition = condition+"and student_id = "+studentID;
System.out.println(condition);
StudentDAO student = new StudentDAO();
List<StudentDAO> students = student.lookupStudent(condition);
request.setAttribute("studentList", students);
} catch (SQLException sqle) {
request.setAttribute("error", "Retrieving Students failed.");
sqle.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
finally {}
request.getRequestDispatcher("UpdateStudent.jsp").forward(request, response);
}
}
答案 0 :(得分:2)
如果问题仅涉及将参数从一个jsp传递到另一个jsp。 你有多种方式。你可以使用这样的东西
request.setAttribute("parameterName")
OR 你可以使用类似的东西和标签。这样你就可以 传递参数。甚至你的代码看起来像传递参数,是什么类型 您获得的例外情况? 谢谢, 本
答案 1 :(得分:1)
你可以使用
<jsp:forward page = "UpdateStudent.jsp">
<jsp:param name = "id" value = "15" />
</jsp:forward>
答案 2 :(得分:0)
如果您想要在页面之间发送参数,您也可以使用会话:
session.setAttribute("name", object)
,在另一页:
session.getAttribute("name")
答案 3 :(得分:0)
我当然相信我们可以将参数放入范围,但要确保您非常谨慎地使用会话,因为太多的会话属性会降低您的性能。 HTH, 本
答案 4 :(得分:0)
如果你想传递String,Integer ....
session.setAttribute("name", object)
和另一页
(String)session.getAttribute("name")