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

         

Метод setBranch (Interpreter.java)



Листинг 7.15. Метод setBranch (Interpreter.java)

// jump to another block has been detected private void setBranch(String block ){ int ct = blockNodeList.getLength();
for( int i = 1 ; i < ct ; i++ ){ // block 0 was the start nowBlock = blockNodeList.item(i);
String name = ((Element)nowBlock).getAttribute("name");
if( name.equals( block )){ checkBlockType() ; // to set terminal flag setQnodeInBlock( 0 ) ; // set nowNode return ; } } System.err.println("Interpreter.setBranch failed to find " + block );
nowBlock = nowNode = null ; }

Метод doPostQ, начало которого приводится в листинге 7.16, вызывается из метода doPost и управляет созданием новой HTML-страницы. Обратите внимание на то, что в первую очередь этот метод проверяет, не был ли зафиксирован соответствующим объектом Recorder тот факт, что опрос завершен. Это сделано для того, чтобы пользователь не мог с помощью кнопки Back (Назад) браузера возвратиться на предыдущую страницу для ввода данных, когда опрос уже завершен и данные записаны.

Следующая часть кода отводится для обработки специального случая, когда переменная quesid равна intro, то есть вопрос является первым в анкете. Во всех других случаях ответ пользователя записывается путем сравнения значений opt, взятых из формы, с атрибутами тега Qopt с помощью объекта Recorder этого сеанса.



Содержание раздела