2012-04-06 9 views
5

मैंने एक सरल सर्वलेट बनाया है जिसमें उपयोगकर्ता को 2 प्रश्नों के साथ प्रस्तुत किया जाएगा, या तो सही या गलत जवाब दिया जाएगा। मेरी समस्या उपयोगकर्ता द्वारा चुने गए उत्तरों को पुनः प्राप्त करने में निहित है।जावा सर्वलेट: मैं चयनित रेडियो बटन मान कैसे प्राप्त कर सकता हूं?

कोड:

  out.println("<FORM ACTION=\"Game\" METHOD = \"POST\">" + 

     "<b>Question 1: Are you over the age of 25? </b><br> <br>" + 

     "<input type = \"radio\" name = \"Q1rad1\" onclick = \"getAnswer('a')\"> True " + 
     "<input type = \"radio\" name = \"Q1rad2\" onclick = \"getAnswer('b')\"> False<br>" + 

     "<br><br><b>Question 2: Are you from earth?</b><br> <br>" + 

     "<input type = \"radio\" name = \"Q2rad1\" onclick = \"getAnswer('a')\"> True " + 
     "<input type = \"radio\" name = \"Q2rad2\" onclick = \"getAnswer('b')\"> False<br>" + 

     out.println("<Center><INPUT TYPE=\"SUBMIT\"></Center>"); 


     ); 

प्रत्येक प्रश्न 2 रेडियो बटन, Q1rad1 & Q2rad2, सही है या गलत जवाब देने के लिए है। जब सबमिट बटन दबाया जाता है तो मैं प्रत्येक उपयोगकर्ता द्वारा चुने गए मान को कैसे जान सकता हूं।

मुझे लगता है कि जावास्क्रिप्ट का उपयोग करते समय यह अधिक कुशल हो सकता है लेकिन इस समस्या के प्रयोजनों के लिए मुझे सर्वलेट का उपयोग करना होगा।

+2

ओह नहीं, आप एचटीएमएल उत्पन्न करने के लिए जेएसपी का उपयोग क्यों नहीं कर रहे हैं? –

उत्तर

2

वही नाम उसी प्रश्न के रेडियो पर दें, और अलग-अलग मान सेट करें। इस page पर देखें।

फिर अनुरोध में आपको रेडियो समूह के नाम और चयनित मूल्य के साथ पैरामीटर मिलेगा।

String value = request.getParameter("radioName"); 
5

आप अपने रेडियो बटन को सही ढंग से नामित नहीं किया है: बाद सर्वलेट प्राप्त करता है पोस्ट का उपयोग कर सकते सबमिट करें। एक ही प्रश्न के लिए प्रत्येक रेडियो विकल्प को समान नाम विशेषता की आवश्यकता होती है। साथ ही, आपके पास प्रत्येक <input type="radio"> पर value विशेषता होनी चाहिए। मुझे यकीन नहीं है कि आपको onclick हैंडलर की आवश्यकता है। आपके पास </form> नज़दीकी टैग भी होना चाहिए। आपका प्रपत्र इस प्रकार दिखाई देंगे:

out.println("<form action=\"Game\" method=\"POST\">" + 

    "<b>Question 1: Are you over the age of 25? </b><br> <br>" + 

    "<input type = \"radio\" name = \"Q1\" value=\"True\"> True " + 
    "<input type = \"radio\" name = \"Q1\" value=\"False\"> False<br>" + 

    "<br><br><b>Question 2: Are you from earth?</b><br> <br>" + 

    "<input type = \"radio\" name = \"Q2\" value=\"True\"> True " + 
    "<input type = \"radio\" name = \"Q2\" value=\"False\"> False<br>" + 

    "<Center><INPUT TYPE=\"SUBMIT\"></Center>" + 

    "</form>" 
    ); 

और फिर उस प्रपत्र प्रस्तुत करने संभालती सर्वलेट की doPost() विधि में, आप request.getParameter() का उपयोग कर मूल्यों पहुँच सकते हैं। कुछ इस तरह:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    String q1 = request.getParameter("Q1"); 
    String q2 = request.getParameter("Q2"); 
    // more processing code... 
} 
+0

तो मैं स्पष्ट हूं, getParameter() को कॉल करने पर q1 और q2 के लिए स्ट्रिंग चर में कौन से मान संग्रहीत किए जाते हैं? – Jnanathan

+0

@ ज्ञाननाथन: आपको जो मूल्य मिलता है वह '<इनपुट प्रकार =" रेडियो ">' की 'मान' विशेषता में जो भी है। मैंने 'value' विशेषताओं को शामिल करने के लिए अपना उत्तर अपडेट कर दिया है। – Asaph

8

आप मूल्य तुम जब रेडियो बटन

मूल्य सेटिंग से निर्धारित करता है, तो जाँच की क्या प्रस्तुत किया जाएगा चयन किया जाता है प्राप्त करना चाहते हैं परिभाषित करने के लिए किया है।

नाम सेटिंग बताता है कि क्षेत्र के रेडियो बटन का कौन सा समूह संबंधित है। जब आप एक बटन चुनते हैं, तो उसी समूह के सभी अन्य बटन अचयनित होते हैं।

<input type = "radio" name = "Q2" onclick = \"getAnswer('b') value="b"> 
<input type = "radio" name = "Q2" onclick = \"getAnswer('a') value="a"> 

अपने सर्वलेट में जो अनुरोध आप अपने HTML कोड के लिए की तरह

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    // get the value of the button group 
    String q2 = request.getParameter("Q2"); 
    // compare selected value 
    if ("a".equals(q2)) { 
     ... 
    } 
    ... 

} 
1

कुछ होगा प्राप्त होगा नीचे लाइनें हैं पर्याप्त

protected void doPost(HttpServletRequest req,HttpServletResponse res){ 
String q1 = request.getParameter("Q1"); 
String q2 = request.getParameter("Q2");` 
} 

उदाहरण के लिए, अपने HTML को ध्यान में रखते कोड।

Q1 दबाया जाता है

"TRUE"

तो यह हमारे "इनपुट" सर्वलेट में होगी।

संबंधित मुद्दे