Значение параметра запроса усекается до первой части, когда оно содержит пробелы - PullRequest
1 голос
/ 27 мая 2011

У меня странная проблема с выпадающими окнами в jsp / servlet. Вот оно ...

  <select name="locdropdown" onchange="javascript:change()" > 
<%
for(LocationDO locationDO : locationList){%>
<option value=<%=locationDO.getLocationName().trim()%>><%=locationDO.getLocationName().trim()%></option> 
<%} %>
</select>

отображаются следующие значения:

 BI Sholingar
 BI Mahindra City
 BI Sanand 
 Rolltec_DTA
 Aztec Auto Ltd
 BI Gurgoan

и вот как я пытаюсь прочитать это в сервлете.

String locclasses = req.getParameter("locdropdown");
System.out.println(locclasses);

предположим, что я выбрал Aztec Auto Ltd, тогда ожидаемый результат от сервлета такой же, правильный. Но вывод Aztec. Точно так же, если я выберу BI Sanand, фактический результат будет BI

Может кто-нибудь помочь, пожалуйста

Ответы [ 2 ]

3 голосов
/ 27 мая 2011

Вам необходимо заключить значение в кавычки.

<option value="<%=locationDO.getLocationName().trim()%>">

Пространство - это разделитель атрибутов HTML.Браузер с немного приличной подсветкой синтаксиса уже намекал бы на это, если бы вы проверили сгенерированный HTML по щелчку правой кнопкой мыши>> 1004 * Просмотр источника .

<option value=Aztec Auto Ltd>

против

<option value="Aztec Auto Ltd">
0 голосов
/ 27 мая 2011

Как сказал BalusC в своем ответе, проблема связана с вашим присвоением значения.

Измените ваш код следующим образом:

<select name="locdropdown" onchange="javascript:change()" > 
<%
for(LocationDO locationDO : locationList)
{%>
<option value="<%=locationDO.getLocationName().trim()%>" >
        <%=locationDO.getLocationName().trim()%>
</option> 
<%} 

%>
</select>

Надеюсь, это поможет.

...