2014-09-26 7 views
0

Я предварительно выбираю свои переключатели по следующему коду. Следующие входы переносятся в форму, которая отправляется обратно в тот же сервлет.Сервлет извлекает предварительно выбранную радиокнопку

buf.append("<input type=\"radio\" name=\"FTNAME\" value=\""+ FTNAME+ "\" " + (FTNAME.equals("Arial") ? "checked=\"checked\"" : "") + ">Arial &nbsp &nbsp &nbsp"); 
buf.append("<input type=\"radio\" name=\"FTNAME\" value=\""+ FTNAME+ "\" " + (FTNAME.equals("Serif") ? "checked=\"checked\"" : "") + ">Serif &nbsp &nbsp &nbsp"); 
buf.append("<input type=\"radio\" name=\"FTNAME\" value=\""+ FTNAME+ "\" " + (FTNAME.equals("SansSerif") ? "checked=\"checked\"" : "") + ">SansSerif <br><br>"); 

Однако, когда я пытаюсь сделать

FTNAME = request.getParameter("FTNAME") == null ? "Arial" : request.getParameter("FTNAME"); //Arial as font name default 

, чтобы получить мой FTNAME, он всегда возвращает то, что он был установлен из приведенного выше кода, а не моего нового выбора.

Любое предложение?

ответ

0

Потому что вы устанавливаете свое значение как Arial для всех трех переключателей. Так что независимо от того, какой переключатель вы выберете, он всегда вернет вам arial.

Это как ваш HTML страница будет выглядеть следующим образом:

<input type="radio" name="FTNAME" value="Arial" checked="checked"> 
<input type="radio" name="FTNAME" value="Arial"> 
<input type="radio" name="FTNAME" value="Arial"> 

И сервлет request.getParameter("FTNAME") будет всегда возвращать вам значение «Arial». Вам необходимо изменить примерно на это

buf.println("<input type=\"radio\" name=\"FTNAME\" value=\"Arial\"" + (FTNAME.equals("Arial") ? "checked=\"checked\"" : "") + ">Arial &nbsp &nbsp &nbsp"); 
buf.println("<input type=\"radio\" name=\"FTNAME\" value=\"Serif\""+ (FTNAME.equals("Serif") ? "checked=\"checked\"" : "") + ">Serif &nbsp &nbsp &nbsp"); 
buf.println("<input type=\"radio\" name=\"FTNAME\" value=\"SansSerif\""+ (FTNAME.equals("SansSerif") ? "checked=\"checked\"" : "") + ">SansSerif <br><br>"); 
+0

Я чувствую себя идиотом! – etlds

1

Да: Мое предложение - вам лучше прочитать код HTML, созданный вашим сервлетом. Вы обнаружите, что все три радиостанции имеют ОДНУЮ СТОИМОСТЬ.

+0

Нет, FTNAME - это параметр, введенный пользователем. Если пользователь выбирает «Arial», тогда будет проверяться только переключатель Arial, статус проверки остальных двух кнопок будет пустым. Мой вопрос: «Кнопка Arial была проверена предыдущей историей, если я хочу выбрать Serif, статус проверки Arial останется прежним. Как он может вернуть новое значение?» – etlds

Смежные вопросы