Электронный магазин на Java и XML

         

Пример сервлета для просмотра результатов отчета - часть 4


Когда пользователь выберет один из файлов с результатами, переменная action принимает значение analyze. Как показано в листинге 7.34, это инициирует создание нового объекта TallyQues, который используется для формирования таблицы с результатами.

Листинг 7.34. Метод doPost, продолжение (QanalysisServ.java)

if( action.equals("analyze") ){ out.println("<h1>Analysis</h1>"); out.println("<p>XML questionnaire file: <i>" + source + "</i></p>"); String ansXml = pQ.getAnsXml( ansfile ); out.println("<p>Answer file: " + ansfile + "</p>"); out.println("<p>Processing file: " + ansXml + "</p>"); TallyQues tQ = new TallyQues( doc ); // build with questions if( tQ.tallyAns( ansXml )== null ){ out.println("<h2>Error " + tQ.lastErr + "</h2>") ; } else { tQ.formatTally( out ); } } footer( out ); }catch( Exception ex ){ errorMsg( out, "QanalysisServ.doPost ", ex ); } }

Метод createQList, показанный в листинге 7.35, создает форму HTML, которая используется для вывода всех возможных файлов с ответами.

Листинг 7.35. Метод createList (QanalysisServ.java)

// the PrepQxml has located all of the answer files - only one // can be analyzed at at time void createQList( PrintWriter out, String source, String[] files ){ out.println("<form method=\"POST\" action= \"http://localhost/servlet/Qanalysis\" >"); out.println("<input type=\"hidden\" name= \"action\" value=\"analyze\" ><br>"); out.println("<input type=\"hidden\" name= \"source\" value=\"" + source + "\" ><br>"); out.println("<select name=\"ansfile\" >"); for( int i = 0 ; i < files.length ; i++){ String tmp = files[i]; out.println("<option value=\"" + tmp + "\" >" + tmp ); } out.println("</select>"); out.println("<input type=\"submit\" value=\"Start\" ><br>" ); out.println("</form><br>"); }




Содержание  Назад  Вперед