[英]How to retrieve the values from previous jsp page to result page?
我正在創建測驗應用程序。 在這里,有5個具有5個不同測驗的jsp頁面。 如果我使用1個jsp頁面和結果頁面,則可以正常工作。 它從QuizPage5.jsp重定向並在ResultPage.jsp中顯示結果。 我需要顯示從QuizPage1.jsp,QuizPage2.jsp,QuizPage3.jsp,QuizPage4.jsp和QuizPage5.jsp到ResultPage.jsp的所有結果。
我用了
在jsp1中傳遞值。
<form action="">
<input type="hidden" name="hidden" value="hidden">
<input type="submit" value="submit"></form>
在jsp2中獲取價值
String value=request.getParameter("hidden");
但是,我正在獲取java.lang.NullPointerException
這是我的代碼。
QuizPage1.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="JavaScript">
function check()
{
var radio_choice = false;
for (counter = 0; counter < myform.grp.length; counter++)
{
if (myform.grp[counter].checked)
radio_choice = true;
}
if (!radio_choice)
{
alert("Please select one.")
return (false);
}
return(true);
}
</script>
</head>
<body>
<h3>Quiz No.1</h3>
Q1.Which one of the following is the Capital of India?<br><br>
<form action="QuizPage2.jsp" method="post" name="myform" onsubmit="return check();">
<input type="radio" name="grp" value="New Delhi" >New Delhi<br>
<input type="radio" name="grp" value="Kolkata" >Kolkata<br>
<input type="radio" name="grp" value="Chennai" >Chennai<br>
<input type="radio" name="grp" value="Mumbai" >Mumbai<br>
<br><br><input type="submit" value="Next Question">
<input type="hidden" name="hidden" value="grp">
<input type="submit" value ="Back" onclick="window.history.back();"/>
</form>
</body>
</html>
QuizPage2.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="JavaScript">
function check()
{
var radio_choice = false;
for (counter = 0; counter < myform2.grp2.length; counter++)
{
if (myform2.grp2[counter].checked)
radio_choice = true;
}
if (!radio_choice)
{
alert("Please select any one Answer");
return (false);
}
return(true);
}
</script>
</head>
<body>
<h3>Quiz No.2</h3>
Q2. Where is Chennai Located?<br><br>
<form action="QuizPage3.jsp"method="post" name="myform2" onsubmit="return check();">
<input type="radio" name="grp2" value="Karnataka" >Karnataka<br>
<input type="radio" name="grp2" value="Tamilnadu" >Tamilnadu<br>
<input type="radio" name="grp2" value="Andhra Pradesh" >Andhra Pradesh<br>
<input type="radio" name="grp2" value="Maharashtra" >Maharashtra<br>
<br><br><input type="submit" value="Next Question">
<input type="hidden" name="hidden" value="grp2">
<input type="submit" value ="Back" onclick="window.history.back();"/>
</form>
<%
String s1=request.getParameter("grp");
%>
</body>
</html>
QuizPage3.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="JavaScript">
function check()
{
var radio_choice = false;
for (counter = 0; counter < myform3.grp3.length; counter++)
{
if (myform3.grp3[counter].checked)
radio_choice = true;
}
if (!radio_choice)
{
alert("Please select any one Answer");
return (false);
}
return(true);
}
</script>
</head>
<body>
<h3>Quiz No.3</h3>
Q3. What is the largest state in the USA<br><br>
<form action="QuizPage4.jsp"method="post" name="myform" onsubmit="return check();">
<input type="radio" name="grp3" value="New York" >New York<br>
<input type="radio" name="grp3" value="Alaska" >Alaska<br>
<input type="radio" name="grp3" value="California" >California<br>
<input type="radio" name="grp3" value="Melbourne" >Melbourne<br>
<br><br><input type="submit" value="Next Question">
<input type="hidden" name="hidden" value="grp3">
<input type="submit" value ="Back" onclick="window.history.back();"/>
</form>
<%
String s2=request.getParameter("grp2");
%>
</body>
</html>
QuizPage4.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="JavaScript">
function check()
{
var radio_choice = false;
for (counter = 0; counter < myform4.grp4.length; counter++)
{
if (myform4.grp4[counter].checked)
radio_choice = true;
}
if (!radio_choice)
{
alert("Please select any one Answer");
return (false);
}
return(true);
}
</script>
</head>
<body>
<h3>Quiz No.4</h3>
Q4. The famous Dilwara Temples are situated in<br><br>
<form action="QuizPage5.jsp"method="post" name="myform" onsubmit="return check();">
<input type="radio" name="grp4" value="Uttar Pradesh" >Uttar Pradesh<br>
<input type="radio" name="grp4" value="Maharashtra" >Maharashtra<br>
<input type="radio" name="grp4" value="Andhra Pradesh" >Andhra Pradesh<br>
<input type="radio" name="grp4" value="Rajasthan" >Rajasthan<br>
<br><br><input type="submit" value="Next Question">
<input type="hidden" name="hidden" value="grp4">
<input type="submit" value ="Back" onclick="window.history.back();"/>
</form>
<%
String s3=request.getParameter("grp3");
%>
</body>
</html>
QuizPage5.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="JavaScript">
function check()
{
var radio_choice = false;
for (counter = 0; counter < myform5.grp5.length; counter++)
{
if (myform5.grp5[counter].checked)
radio_choice = true;
}
if (!radio_choice)
{
alert("Please select any one Answer");
return (false);
}
return(true);
}
</script>
</head>
<body>
<h3>Quiz No.5</h3>
Q5. The Indian Institute of Science is located at<br><br>
<form action="ResultPage.jsp"method="post" name="myform" onsubmit="return check();">
<input type="radio" name="grp5" value="Chennai" >Chennai<br>
<input type="radio" name="grp5" value="Bangalore" >Bangalore<br>
<input type="radio" name="grp5" value="Mumbai" >Mumbai<br>
<input type="radio" name="grp5" value="Hyderabad" >Hyderabad<br>
<br><br><input type="submit" value="Show Result">
<input type="hidden" name="hidden" value="grp5"/>
</form>
<%
String s4=request.getParameter("grp4");
%>
</body>
</html>
ResultPage.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Quiz Result</title>
</head>
<body>
<%
String answer="New Delhi";
String s1=request.getParameter("grp");
if(s1.equals(answer))
{
out.println("Correct Answer");
}
else
{out.println("Wrong Answer! The Correct Answer is :"+answer);
}
%>
<%
String answer2="Tamilnadu";
String s2=request.getParameter("grp2");
if(s2.equals(answer2))
{
out.println("Correct Answer");
}
else
{out.println("Wrong Answer! The Correct Answer is :"+answer2);
}
%>
<%
String answer3="Alaska";
String s3=request.getParameter("grp3");
if(s3.equals(answer3))
{
out.println("Correct Answer");
}
else
{out.println("Wrong Answer! The Correct Answer is :"+answer3);
}
%>
<%
String answer4="Rajasthan";
String s4=request.getParameter("grp4");
if(s4.equals(answer4))
{
out.println("Correct Answer");
}
else
{out.println("Wrong Answer! The Correct Answer is :"+answer4);
}
%>
<%
String answer5="Bangalore";
String s5=request.getParameter("grp5");
if(s5.equals(answer5))
{
out.println("Correct Answer");
}
else
{out.println("Wrong Answer! The Correct Answer is :"+answer5);
}
%>
</body>
</html>
非常感謝您的幫助。 提前致謝
如果您希望可以跨多個頁面訪問的數據,請考慮使用會話存儲數據。 例如,如果page1.jsp向page2.jsp提交了表單參數“ page1Result”,則在page2.jsp中,執行以下操作:
String page1Result = request.getParameter("page1Result");
request.getSession().setAttribute("page1Result", page1Result);
然后,在以后的某個時刻(例如第5頁),您可以按以下方式訪問page1值:
String page1Value = (String)request.getSession().getAttribute("page1Result);
================================================== =============================將其應用於您的代碼:
在page2 jsp中,將文件末尾的scriptlet更改為:
<%
String s1=request.getParameter("grp");
request.getSession().setAttribute("s1", s1);
%>
在第3頁JSP中,將腳本更改為:
<%
String s2=request.getParameter("grp2");
request.getSession().setAttribute("s2", s2);
%>
等等。
最后在ResultPage.jsp上(僅顯示示例2)
out.println("Wrong Answer! The Correct Answer for question 2 is :"+session.getAttribute("s2"));
在jsp1上
String passThis = "pass this value";
request.setAttribute("param1",passThis);
調度到jsp 2
在jsp2中
String getParam = request.getAttribute("param1");
通過JavaScript
切換問題並立即提交所有內容。
我沒有詳細看代碼。 但是這個問題需要多重請求范式。 但是result.jsp雖然從請求對象獲取所有答案。 而它應該是會話對象。 每個問題的答案都應該存儲在會話中。 因此它是可訪問的,並且不會受到影響。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.