Значение request.getParameter не получает данные с пробелами из значения, указанного пользователем - PullRequest
0 голосов
/ 09 июня 2018

Я только изучаю jsp и Java и все еще плохо знаком с этим.У меня есть этот код в моем файле a.jsp . Пользователю нужно будет ввести любой элемент в значение и нажать кнопку Поиск.

<input type="text" value="" name="itemCode" id="itemCode">;
<input type="button" name="btnitemsearch" value="Search" onclick="searchItem();"> 

Затем в функции searchItem (),

var code1 = document.getElementById("itemCode").value;
var getData = '../select_Item/b.jsp?itemCode=' + code1;

$(document).ready (function(){
     $("#openModalDialog").dialog({
         modal: true,
         autoOpen: false,
         title: "Item Search",
         width: 700,
         height: 400,
         });
     });

     $('#openModalDialog').dialog('open');
      $('#openModalDialog').load(getData);

Таким образом, в файле b.jsp я использую параметр запроса get для получения значения, но он работает только в том случае, если значение не имеет пробела.

<% String itemCode= request.getParameter("itemCode");
   System.out.println(itemCode);%>

Пример, если я ввожу значение карандаша, конечно, он выводит «карандаш».Но если я введу значение карандаша 2b, если вывести только «карандаш» без пробела »и 2b.

Я знаю, что этот вопрос был задан и дублирован. Но в большей части задаваемого вопроса запрос на использование значения.getParameter.It говорит, что мне нужно заключить значение атрибута в кавычки.

value="<%=request.getParameter("anything")%>"

Но в моем вопросе, должно ли значение быть введено пользователем. Как заставить это работать?Спасибо.

1 Ответ

0 голосов
/ 09 июня 2018

Заменить:

var getData = '../select_Item/b.jsp?itemCode=' + code1;

на

var getData = '../select_Item/b.jsp?itemCode=' + encodeURIComponent(code1);

Вам необходимо закодировать строку запроса, чтобы сформировать правильную строку URL.

В этом случае: pencil 2b станет pencil%202b, и символ пробела будет правильно сохранен при доступе к вашему b.jsp

...