почему мой jsp request.getParameter () не получает данные? - PullRequest
2 голосов
/ 28 сентября 2011

я создал форму, в которой пользователь будет снимать флажки, выбирать радиокнопки и выпадающие списки в 1.jsp ...

я хочу использовать информацию из 1.jsp для определения выходных данных2.jsp ...

jsfiddle для 1.jsp: http://jsfiddle.net/VWczQ/

action="/2.jsp">

теперь в 2.jsp у меня есть это:

<% if(request.getParameter("extra") != null) { %>           
    <page:cmsElement id="cmsContent" name="/otcmarkets/traderAndBroker/market-data-vendors/wizard-results" />
<% } else if(request.getParameter("all") != null) { %>
    <page:cmsElement id="cmsContent" name="/otcmarkets/traderAndBroker/market-data-vendors/con-all" />
<% } else { %>
    <h1>holy crap everything is null!!!</h1>
<% } %>

когда яслучайным образом выбрать параметры из формы все NULL ...

что я делаю не так?!?

1 Ответ

5 голосов
/ 28 сентября 2011

Вы, вероятно, ожидаете, что атрибут id элементов ввода HTML был отправлен как имя параметра запроса.Это не верно.Это атрибут name, который был отправлен как имя параметра запроса.Тогда его значением является атрибут value, установленный для именованного элемента ввода.

Таким образом, вместо, например, неправильной проверки

if(request.getParameter("extra") != null) {
    // ...
}

для следующего переключателя

<input type="radio" name="choice" value="extranet" id="extra"/>

вам нужно получить параметр по имени choice и проверить, является ли его значение extranet.

if ("extranet".equals(request.getParameter("choice"))) {
    // ...
}

Что касается флажка all, я запутался.Можно отправить оба значения , но вы проверяете их в if-else.Разве all не должен быть внутри той же группы переключателей?Разве вы не должны удалить else?В любом случае, точка должна быть ясной.Атрибут name элементов ввода отправляется как имя параметра запроса, а не атрибут id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...