私はサーブレットでいくつかの操作を行っており、セッションで同じ設定を行っており、ページにリダイレクトするときに値を使用しています。しかし、ページにリダイレクトしている間、値は来ていません。
これは非常に基本的な質問であることは知っていますが、それでも私にはできません。
ここに私のサーブレットがあります:
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String path = getServletContext().getRealPath("/accesscarddata/");
doGet(request, response);
readFile(request, response);
prepareExcelEmployeeListToMap(request, response);
classifyEmployeesMapEntries(request, response);
prepareReport(request, response);
generateLeaveReport(request,response);
//request.getRequestDispatcher("upload.jsp").forward(request, response);
response.sendRedirect("upload.jsp");
}
これらの両方を試しましたが、値がjspに来ていません。
編集:これは私がjspのセッションから読む方法です
<%@ page contentType="text/html"%>
<%@ page pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%
String leaveReport = "";
if ((session.getAttribute("leaveReport") != null)) {
leaveReport = (String) session.getAttribute("leaveReport");
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Comparing access-card Data with leave manager Data</title>
<link href="css/sling.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" src='script/cal.js'></script>
<!-- Below imports for Blanket purpose-->
<script src='script/blanket.js'></script>
%>
これは、ページの読み込み中に値を取得しようとする方法です。最初にjavascriptアラートが表示されますが、リクエストがサーブレットからリダイレクトされると、alortは表示されません。
bodyOnLoad();
function bodyOnLoad(){
alert("bodyOnLoad");
var leaveReport = '<%=leaveReport%>';
alert("leaveReport :"+leaveReport);
if(leaveReport!=null && leaveReport!=""){
displayLeaveReport(leaveReport);
}
}
これが私のjavascriptメソッドです:
function displayLeaveReport(leaveReport){
if(leaveReport == ""){
document.getElementById("leaveReport").style.display = "none";
} else{
document.getElementById("leaveReport").style.display = "";
}
}
JSP:
<tr>
<td width="100%" valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="title_box" align="left">Leave to be availed Employees</td>
</tr>
</table>
<table width="100%" align="center" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" align="left" class="tableBorder" valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#f9fae3" >
<tr class="lightrow">
<td width="10%" class="title_sub" align="center">S.No</td>
<td width="35%" class="title_sub" align="center">Employee ID</td>
<td width="35%" class="title_sub" align="center">Employee Name</td>
<td width="20%" class="title_sub" align="center">Action</td>
</tr>
</table>
<div id="leaveReport" align="right" style="display : none;height:100px; overflow:auto"></div>
</td>
</tr>
</table>
</td>
</tr>