установите значение var от значения поля ввода

Я запустил короткое время назад с JSP, JSTL, HTML и JavaScript, таким образом, вот моя проблема:

Я должен установить значение var значение скрытого входа. Другая опция состоит в том если это возможна сравнить использование

<c:if test="....">

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

Спасибо.

Обновление

Я пробовал, но не могу заставить его работать.

У меня есть это поле, которое содержит идентификатор и объект. У меня также есть список с объектами поэтому, что я должен сделать, находка объект, связанный с тем идентификатором.

<input type="text" name="id1" />

но если я делаю это:

<c:set var="dd" value="${param.id1}" />
<input type="text" value="${dd}" />

Входной текст пуст, но текст, связанный с id1, отображается 850 (т.е. значение является динамичным),

Какое-либо предложение, почему не работает?

Обновление 2

Мне нужен "multipart/form-data", потому что в форме я должен загрузить картинку. Я понимаю, как получить параметры от Java, но так как я не использую сервер, но страницы JSP, существует какой-либо способ сделать это? Просто должен считать тот входной элемент и сохранить его в переменной.

5
задан framara 18 January 2010 в 18:09
поделиться

1 ответ

Доступ к параметрам запроса осуществляется неявной ${param} переменной.

Например, http://example.com/context/page.jsp?foo=bar в сочетании с

<c:if test="${param.foo == 'bar'}">
   The foo's param value is bar!
</c:if>
<c:if test="${param.foo != 'bar'}">
   The foo's param value is not bar, it is: ${param.foo}
</c:if>

покажет первое условие.

Если вы действительно хотите сохранить какой-то скрытый входной элемент в последующих запросах (что на самом деле не было ясно в вашем вопросе), то все, что вам нужно сделать, это:

<input type="hidden" name="foo" value="${param.foo}">

Update: согласно вашему обновлению: вам также нужно дать входному элементу имя name. Таким образом, например,

<input type="text" name="id1" value="${param.id1}" />

Это доступно по request.getParameter("id1") и по сути также ${param.id1}. Вы видите это сейчас?

Обновление 2: согласно вашему комментарию здесь: безусловно, это связано с enctype="multipart/form-data". При такой кодировке параметры запроса уже не в карте параметров, а в теле запроса, из-за смешивания с бинарными данными (загрузка файлов). Объяснение всего этого будет длинной историей, но в основном нужно разобрать запрос самостоятельно. Если вы на сервлетах 2.5 или старше, то здесь очень поможет Apache Commons FileUpload. Читайте особенно "Руководство пользователя" и "Часто задаваемые вопросы" там, чтобы увидеть примеры кода и узнать, как правильно его использовать (также в MSIE!). Вы даже можете решить абстрагироваться от FileUpload, чтобы придерживаться HttpServletRequest#getParameter() и ${param} обычным способом, также смотрите эту статью .

Если вы уже на сервлетах 3.0, то вы можете просто воспользоваться HttpServletRequest#getParts(). Вы даже можете абстрагироваться от него, так что вы можете использовать HttpServletRequest#getParameter() и ${param} обычным способом, также смотрите данную статью.

Обновление 3: О, вы действительно не хотите использовать JSP для выполнения всей обработки. А вот и нет. Самое время выучить Сервлет . Кроме того, при использовании Фильтра , который возвращает все параметры из тела запроса обратно в карту параметров запроса (как описано в обеих статьях), вам также не обязательно использовать Сервлет в конце концов.

3
ответ дан 15 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: