Ez a harmadik bejegyzés az online kvízalkalmazás létrehozásának sorozatában a JSP Servlet segítségével.
Ha még nem olvasta el az előző bejegyzéseket, kérjük, menjen át rajta, mivel ez megkönnyíti a bejegyzés követését és teljes megértését.
1. rész -
2. rész - Kvíz alkalmazás - Visszaszámláló időzítő megvalósítása
Ebben a bejegyzésben a következő funkciókat fogjuk hozzáadni a kvíz alkalmazásunkhoz
1. Lehetőség biztosítása a felhasználónak, hogy áttekintse a válaszokat a kvíz befejezése után
szakács vs báb vs jenkins
2. A felhasználó válaszainak helyes vagy helytelen megjelölése
3. A meg nem kísérelt kérdések megválaszolatlannak jelölése
Az alábbiakban látható a létrehozott kvíz eredményoldalának pillanatképe.
Kvíz eredményoldala
Mi kell még ahhoz, hogy az ellenőrzési funkció működjön?
A felhasználó bármikor befejezheti a vetélkedőt, miután befejezte a kérdést, lehetősége lesz megvizsgálni válaszait. Ha a felhasználó nem válaszol egy kérdésre, és a következő gombra kattintva kihagyja, akkor a kérdés megválaszolatlanul jelenik meg a vizsga áttekintő oldalán.
Annak érdekében, hogy a felhasználó megkapja a kvíz összefoglalóját, mindössze annyit kell tennünk, hogy elmentjük a felhasználói válaszokat, és amikor befejezi a kvízt, hasonlítsa össze a kérdés tényleges válaszával.
Ha a felhasználó válasza megegyezik a kérdés helyes megválaszolásával, akkor a helyes szimbólum jelenik meg else kereszt (x) szimbólum.
Hozzáadunk egy új vezérlőt, a ReviewController nevet, amely kivonja az összes adatot és elküldi egy JSP oldalra, hogy megjelenjen.
Megjegyzés: Kérdéseket töltünk le az XML fájlból, amikor a felhasználó a következő vagy az előző gombra kattint.
Tegyük fel, hogy a felhasználó kvízt indít, és csak egy kérdéssel próbálkozik, majd a Befejezés gombra kattint.
hogyan készítsünk fájlt Java-ban
Most, a vetélkedő áttekintő oldalán meg kell mutatnunk az összes kérdést annak lehetőségeivel és a felhasználó válaszával, hogy helyes volt-e vagy sem. Mivel ebben a forgatókönyvben a felhasználó nem teljesíti a teljes kvízt, a 9 kérdés többi része megválaszolatlanul jelenik meg.
Tehát amikor a felhasználó rákattint az Ellenőrzési kvízre, hogy megnézze a válaszait és a kérdésre adott helyes választ, akkor le kell szednünk az összes kérdést az XML fájlból és annak helyes válaszát.
Projektszerkezet az Eclipse IDE-ben
Megjegyzés: Épp most vettünk fel egy új vezérlőt a ReviewController-t.
ReviewController.java
@WebServlet ('/ exam / review') public class ReviewController kiterjeszti a HttpServlet {private static final long serialVersionUID = 1L / ** * @see HttpServlet # HttpServlet () * / public ReviewController () {super () // TODO automatikusan létrehozva konstruktor csonk} / ** * @ lásd HttpServlet # doGet (HttpServletRequest kérés, HttpServletResponse válasz) * / védett void doGet (HttpServletRequest kérés, HttpServletResponse válasz) dob ServletException, IOException {Exam Tube Exam Auto-létrehozott [// TOD ExamO auto request.getSession (). getAttribute ('currentExam') request.setAttribute ('totalQuestion', exam.getTotalNumberOfQuestions ()) ArrayList reviewQuestionList = new ArrayList () Document dom = exam.getDom () for (int i = 0i)Megjegyzés: Az összes szükséges információt beállítottam a QuizQuestion ArrayList-be, és ezt az ArrayList-et beállítottam a kérelem hatókörének attribútumaként.
ArrayList reviewQuestionList = new ArrayList () request.setAttribute ('reviewQuestions', reviewQuestionList)A JSP oldalon csak le kell töltenünk a reviewQuestions attribútumban tárolt értékeket.
Létrehoztam egy JSP oldalt examReview.jsp néven, amely megmutatja a kvíz összefoglalóját.A QuizQuestion megjelenítése az opciókkal együtt
A JSP oldalon a JSTL c: forEach fájlt használjuk a QuizQuestion listájának átdolgozásához, amelyet a ReviewController állított be
$ {counter.count}. $ {question.question}
$ {counter.count}. $ {option}
Helyes válasz megjelenítése
Ne feledje, hogy az XML fájlban a 0 indextől kezdve tároltam opciókat.
Ezért adtunk hozzá egyet, miközben megmutattuk a felhasználónak a helyes választ, mivel ez intuitív a felhasználó számára.
Helyes válasz: $ {question.correctOptionIndex + 1}Kérdés megválaszolása megjelölés
A felhasználónak nem kötelező minden kérdést megkísérelnie. Csak átugorhatja a következő gombra kattintva. Tehát hogyan lehet megtudni, hogy megválaszolták-e egy kérdést vagy sem?
Egy változtatást hajtottam végre a vizsga konstruktorában, így amikor új vizsgát hozunk létre, minden kérdéshez a felhasználó válaszát is kezdetben -1-re állítjuk. Tehát, amikor a felhasználó megkezdi a vetélkedőt, akkor minden kérdésnél megadjuk a felhasználó választását, még akkor is, ha a felhasználó csak a befejezés gombra kattint a kérdés között, amely a teszt között van.
De ha a felhasználó valóban válaszol egy kérdésre, akkor a -1 helyébe a felhasználó kiválasztja ezt a kérdést.
nyilvános vizsga (karakterlánc teszt, int totalNumberOfQuestions) dobja a (int i = 0i) SAXException, ParserConfigurationException, IOException, URISyntaxException {dom = CreateDOM.getDOM (teszt)Tehát, ha a felhasználó nem válaszol egy kérdésre, és átugrik a következő kérdésre, vagy csak a Befejezés gombra kattint, a -1 kezdeti válasz ott lesz. A JSP oldalon összehasonlíthatjuk, hogy a felhasználó választása -1 vagy sem. Ha -1, akkor ez azt jelenti, hogy a felhasználó nem válaszolt erre a kérdésre. És ezt a kérdést megválaszolatlannak fogjuk jelölni.
Válasz nélkül
A felhasználói válasz megjelenítése
Ha a felhasználó valóban válaszolt egy kérdésre, akkor a -1 kezdeti válasz helyébe a felhasználó válasza lép, és 1,2,3 vagy 4 váltja fel, mivel minden kérdésre négy lehetőségünk van.
Ön választotta: $ {question.userSelected}
Készítünk egy c: if tesztet, hogy megbizonyosodjunk arról, hogy a felhasználó valóban válaszolt-e egy kérdésre, majd megjelenítse a felhasználó válaszát.
A válasz helyesnek jelölése
Ha a felhasználó választása és a kérdésre adott helyes válasz megegyezik, akkor egy megfelelő jelet tartalmazó képet jelenítünk meg.
A válasz megjelölése hibásnak
Egy egyszerű c: ha tesztet végeznek, hogy összehasonlítsák a felhasználó válaszát a kérdés helyes opciójával. Ha mindkettő nem egyenlő, az azt jelenti, hogy a felhasználó helytelenül válaszolt a kérdésre, és egy keresztjelet tartalmazó képet jelenítünk meg.
Kattintson a letöltés gombra a kód letöltéséhez.
nagy adatelemzés alkalmazásai[buttonleads form_title = ”Kód letöltése” redirect_url = https: //edureka.wistia.com/medias/q2kgiq4su3/download? media_file_id = 67378724 course_id = 44 button_text = 'Kód letöltése']
Van egy kérdésünk? Kérjük, említse meg a megjegyzések részben, és mi kapcsolatba lépünk Önnel.
Kapcsolódó hozzászólások: