В JSP, как мне получить параметры из URL?
Например, у меня есть URL www.somesite.com/Transaction_List.jsp?accountID=5
Я хочу получить 5.
Есть ли request.getAttribute( "accountID" ), например, для сеансов или чего-то подобного?
В JSP, как мне получить параметры из URL?
Например, у меня есть URL www.somesite.com/Transaction_List.jsp?accountID=5
Я хочу получить 5.
Есть ли request.getAttribute( "accountID" ), например, для сеансов или чего-то подобного?
В запросе GET параметры запроса берутся из строки запроса (данные, следующие за вопросительным знаком в URL-адресе). Например, URL http://hostname.com?p1=v1&p2=v2 содержит два параметра запроса - - p1 и p2. В запросе POST параметры запроса берутся из строки запроса и отправленных данных, которые закодированы в теле запроса.
В этом примере показано, как включить значение параметра запроса в сгенерированный вывод:
Hello <b><%= request.getParameter("name") %></b>!
Если страница была доступна с URL-адресом:
http://hostname.com/mywebapp/mypage.jsp?name=John+Smith
результирующий вывод будет:
Hello <b>John Smith</b>!
Если имя не указано в строке запроса, результатом будет:
Hello <b>null</b>!
В этом примере используется значение параметра запроса в скриптлете:
<%
if (request.getParameter("name") == null) {
out.println("Please enter your name.");
} else {
out.println("Hello <b>"+request. getParameter("name")+"</b>!");
}
%>
О Неявные объекты Унифицированный язык выражений, Java EE 5 Tutorial пишет:
Неявные объекты
Язык выражения JSP определяет набор неявных объектов:
pageContext
: контекст для страницы JSP. Обеспечивает доступ к различным объектам, включая:
servletContext
: контекст для сервлета страниц JSP и любых веб-компонентов, содержащихся в одном приложении. См. Доступ к веб-контексту.session
: объект сеанса для клиента. См. Поддержание состояния клиента.request
: запрос, запускающий выполнение страницы JSP. См. Получение информации из запросов.response
: ответ, возвращаемый страницей JSP. См. "Построение ответов".- Кроме того, доступно несколько неявных объектов, которые обеспечивают легкий доступ к следующим объектам:
param
: сопоставляет имя параметра запроса с единственным значениемparamValues
: сопоставляет имя параметра запроса с массивом значенийheader
: сопоставляет имя заголовка запроса с единственным значениемheaderValues
: сопоставляет имя заголовка запроса с массивом значенийcookie
: сопоставляет имя файла cookie с одним файлом cookieinitParam
: сопоставляет имя параметра инициализации контекста с единственным значением- Наконец, есть объекты, которые разрешают доступ к различным облачным переменным, описанным в разделе "Использование объектов области видимости".
pageScope
: имена переменных в списке страниц, привязанных к страницам, к их значениямrequestScope
: имена переменных области запроса, привязанные к запросу, к их значениямsessionScope
: сопоставляет имена переменных области сеанса с их значениямиapplicationScope
: имена переменных области приложения, привязанные к приложениям, к их значениям
Интересные части выделены жирным шрифтом:)
Итак, чтобы ответить на ваш вопрос, вы должны иметь доступ к нему, как это (используя EL):
${param.accountID}
Или, используя JSP Scriptlets (не рекомендуется):
<%
String accountId = request.getParameter("accountID");
%>
Используйте EL (язык выражения JSP):
${param.accountID}
Если я могу добавить комментарий здесь...
<c:out value="${param.accountID}"></c:out>
не работает для меня (он печатает 0).
Вместо этого это работает:
<c:out value="${param['accountID']}"></c:out>
request.getParameter("accountID")
- это то, что вы ищете. Это часть Java Servlet API. Подробнее см. http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html.
String accountID = request.getParameter("accountID");
пример, который вы хотели удалить тему записи с ее subject_id
@RequestMapping(value="subject_setup/delete/{subjectid}",method = RequestMethod.GET)
public ModelAndView delete(@PathVariable int subjectid) {
subjectsDao.delete(subjectid);
return new ModelAndView("redirect:/subject_setup");
}
и параметр будет использоваться для ввода по вашему запросу
public int delete(int subjectid) {
String sql = "update tbl_subject set isdeleted= '1' where id = "+subjectid+"";
return template.update(sql);
}
www.somesite.com/Transaction_List.jsp?accountID=5
Для этого URL
есть вызов метода request.getParameter
в java, если вы хотите, чтобы число здесь приводилось к int
, аналогично для строкового значения, приведенного к string
. так что по вашему требованию, просто скопируйте мимо строки ниже на странице,
int accountId =(int)request.getParameter("accountID");
Теперь вы можете вызвать это значение, используя accountId
на всей странице.
здесь accountId
- это имя параметра, с помощью которого вы также можете получить более одного параметра, но это не работает. Он будет работать только с методом GET
если вы нажмете запрос POST
тогда они будут ошибкой.
Надеюсь, это полезно.