Я запустил короткое время назад с 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, существует какой-либо способ сделать это? Просто должен считать тот входной элемент и сохранить его в переменной.
Доступ к параметрам запроса осуществляется неявной ${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 для выполнения всей обработки. А вот и нет. Самое время выучить Сервлет
. Кроме того, при использовании Фильтра
, который возвращает все параметры из тела запроса обратно в карту параметров запроса (как описано в обеих статьях), вам также не обязательно использовать Сервлет
в конце концов.