@RequestParam, вы, должно быть, видели это; @Pathvariable, вы, должно быть, знали это; @Queryparam, почему вы этого не знаете? ! И он знаком вам (@cookievalue)! Она (@ModelandView)! Это (@modelattribute)! Правильно, просто аннотируя это, Spring MVC открывает для вас красочный мир. Давай, не будь взволнован (МИ) и (Ху), сядь, давай поговорим об этих братьях по аннотациям
1. Как соответствовать пути запроса в Spring MVC - «Какой путь запроса лучше, запросы хорошо известно»
@Requestmapping используется для картирования запросов, таких как запросы на получение запросов, запросы публикации или стили отдыха и стили без ресторанов. Эта аннотация может использоваться в классе или на методе, если он используется в классе, представляющий родительский путь всех методов в классе.
Например (тестовые классы, используемые здесь, такие как Springmvctest и некоторые страницы были введены в первой статье «Learning Springmvc - начиная с Helloworld»):
Добавьте методы испытаний в Springmvctest.java:
@Requestmapping ("/testRequestmapping") public String testRequestmapping () {System.out.println ("testRequestmapping"); вернуть успех;}Обратите внимание, что аннотация @Requestmapping («/testRequestmapping») добавляется к уровню метода, что означает, что этот метод может быть расположен по относительному пути «/testRequestmapping». В то же время мы также поместили аннотацию запросов на уровне класса в классе Springmvctest:
@Requestmapping ("/springmvc")@controllerpublic class springmvctest {Обратите внимание, что есть также аннотация @Controller. Эта аннотация отвечает за запросы на обработку, распределенные диспетчером в SpringMVC. Он инкапсулирует данные, запрошенные пользователем через уровень обработки службы, а затем возвращает модель в соответствующее представление для отображения. На этом этапе у нас есть путь, такой как «SpringMVC/TestRequestmapping», а затем мы можем найти метод TestRequestmapping, а затем выполнить тело метода в методе.
Чтобы добавить еще одну вещь, запрос MAN может реализовать нечеткие пути сопоставления, такие как:
? : Сопоставьте персонажа
*: Сопоставьте любого персонажа
**: Сопоставьте многослойные пути
/springmvc/**/lasttest может совпадать с такими путями, как/springmvc/firsttest/secondtest/lasttest
2. Как получить запрошенные параметры Spring MVC - «Восемь бессмертных пересекают море, каждый из которых показывает свои волшебные силы»
1. @pathvariable
Эта аннотация используется для картирования заполнителей, связанных с URL -адресом запроса. Через @pathvariable вы можете связать параметр заполнителя в URL -адресу с параметром метода обработки контроллера. Вы не понимаете? Смотрите пример:
@Requestmapping ("/testPathvAriable/{id}") открытая строка testPathvAriable (@pathvariable (value = "id") integer id) {system.out.println ("testpathvariable:" + id); вернуть успех;}В index.jsp мы добавляем соединение, чтобы запустить запрос:
<a href = "springmvc/testpathvairiable/1"> testpathvariable </a> <br/> <br/>
Мы видим, что здесь есть гиперссылка. После нажатия мы введем метод обработки контроллера, соответствующий Springmvc/testpathvairiable/1. Теперь мы хотим получить «1» в этом параметре запроса, поэтому добавьте «/testpathvaible/id» в метод TestPathvaible, о ID », и конкретное соответствие {id}. В параметрах этого метода @pathvarible (значение =" id ") объявлено и связывают его через INTEGER ID через этот метод, мы можем получить параметр« 1 ».
2. @RequestParam
Эта аннотация также используется для получения параметров запроса. Так чем же эта аннотация отличается от @pathvariable? Давайте посмотрим на пример:
Добавление методов в Springmvctest
@Requestmapping (value = "/testRequestParam") открытая строка testRequestParam (@RequestParam (value = "userName") String userName, @RequestParam (value = "Age", обязательно = false, defaultValue = "0") int Age) {System.out.Println ("testRequestParam" + "usersame +:" + userme); вернуть успех;}Добавить тег гиперссылки в index.jsp
<a href = "Springmvc/testRequestParam? userName = Jackie & Age = 12"> TestRequestParam </a> <br/> <br/>
Нажатие на гиперссылку на странице будет соответствовать пути задания запросов на методе TestRequestParam в контроллере. Обратите внимание, что в этом методе мы объявляем две переменные через аннотацию @RequestParam, чтобы получить значение параметра, предоставленное запросом в запросе, одно из них является значением после имени пользователя, а другое - это значение после возраста.
Увидев это, вы, вероятно, понимаете некоторые различия между @pathvariable и @requestparam. Для таких запросов, как «Springmvc/testpathvariable/1», мы используем @pathvariable для связывания запрошенных параметров; в то время как для параметров запроса, таких как «SpringMVC/TestRequestParam? userName = Jackie & Age = 12», появляются как пары ключей. Мы используем @RequestParam для получения конкретного значения запроса после имени пользователя или возраста.
Queryparam также похож на requestParam, потому что он не является аннотацией в рамках Spring MVC, поэтому он не будет подробно описан здесь.
Для различных типов запросов и методов запросов Spring MVC имеет набор целевых решений. Давайте посмотрим, на что похожи популярные запросы в стиле отдыха - используя стиль REST для достижения сложения, удаления, модификации и поиска.
Реализация интерфейса интерфейса для проверки (get), добавление (post), удаление (удаление) и модификация (put) реализована в классе Springmvctest снизу вверх.
@Requestmapping (value = "/testRest/{id}", method = requestMethod.put) public String testRestput (@pathvariable (value = "id") IDEGER ID) {System.out.println ("Test Put:" + id); возврат успеха;} @Requestmapping (value = "/testrest/{id}", method = requestMethod.delete) public String testrestDelete (@pathvariable (value = "id") integer id) {system.out.println ("test letlete:" + id); Возврат успеха;} @Requestmapping (value = "/testrest", method = requestMethod.post) public String testrest () {System.out.println ("test post"); возврат успеха;} @Requestmapping (value = "/testrest/{id}", method = requestMethod.get) public String testrest (@pathvariable (value = "id") IDEGER ID) {System.out.println ("test get:" + id); вернуть успех;}Так как реализовать интерфейс стойки регистрации? Соответствующий порядок
<form action = "springmvc/testrest/1" method = "post"> <input type = "hidden" name = "_ method" value = "put"/> <input type = "prope" value = "testrestput"/> </form> <br/> <form action = "springmvc/testrest/1" method = "> <brot type =" hidden "=" name = "name =" name = "name =" name = "name =" name = "name =" name = "name =" name = "name =" name = "name =" "/" "/" "/" "/" type = "prope" value = "testrest Delete"/> </form> <br> <br> <form action = "springmvc/testrest" method = "post"> <input type = "prope" value = "testrestpost"> </form> <br/> <br/> <a href = "Springmvc/testrest/1"> testrest </a> <br/ <br/ <br/ <br/ <br/ <br/19 <br/ <br/19
Кроме того, нам также необходимо добавить оператор в файл конфигурации web.xml, который поддерживает преобразование POST для удаления и размещения запросов.
<!-Настройка hiddenhttpmethodfilter: вы можете преобразовать запросы на сообщение для удаления или публикации запросов-> <filter> <filter-name> hiddenhttpmethodfilter </filter-name> <filter-class> org.springframework.web.filter.hiddenhttpmethodfilter </filtercrass> wifsmeth <Filter-Mapping> <Filter-name> hiddenhttpmethodfilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Как вы можете видеть, модификация и удаление здесь отправляются через Post, поскольку PUT и DELETE не поддерживаются здесь для непосредственного реализации удаления и модификации. Вместо этого, используя метод POST и тихо, принося входной тег с скрытым типом, чтобы сообщить о том, что то, что я отправил на стойке регистрации, на самом деле является запросом на удаление и модификацию.
Итак, как реализовать этот процесс, зачем добавлять
<input type = "hidden" name = "_ method" value = "delete"/>
Этот токен будет куплен другими на заднем плане. Тогда давайте посмотрим, как мы купили его позже.
В последнем анализе это связано с добавлением класса Hiddenhttpmethodfilter в web.xml. В этом классе есть метод Dofilterinternal. Благодаря отладке мы можем найти подсказки, запустить Tomcat (не Tomcat8), щелкнуть соответствующий входной тег операции удаления и ввести интерфейс отладки. Мы можем увидеть:
Небольшая яма: Здесь обратите внимание, что стартап не может быть Tomcat8, но может быть только меньшей версией, чем 8, например, 7 или 6 и т. Д. На следующем рисунке показано сообщение об ошибке, используя Tomcat и успешный ответ, используя 7: 7:
Подводя итог, как отправить запрос на то, чтобы положить и удалить:
1. Настройка hiddenhttpmethodfilter в web.xml
2. Отправить запрос сообщения
3. В запросе есть скрытый домен, имя «_mothod», значение помещается или удаляется
Наконец, давайте поговорим об аннотации @cookievalue.
3. @cookievalue
Эта аннотация также является аналогичной рутиной, и это также отображение, которое отображает значение cookie.
Когда мы отправляем запрос, мы видим, что запрос несет некоторые значения cookie.
Например, JSessionId или путь здесь. Теперь мы напишем метод, чтобы получить значение cookie.
Добавить в Springmvctest
@Requestmapping (value = "/testcookievalue") public String testcookievalue (@cookievalue ("jsessionId") String cookieivalue) {System.out.println ("testcookievalue:" + cookieievalue); вернуть успех;}Добавить ссылку в интерфейс index.jsp
<a href = "Springmvc/testcookievalue"> testcookievalue </a> <br/> <br/>
Таким образом, мы можем получить такие результаты, как «Testcookieveiveule: 1410F05C9ADD84E8659C2AC79E8CC666».
Пока что мы представили
1. Использование @requestmapping
2. Получите использование @pathvariable и @requestparam параметров запроса
3. Представьте, как реализовать запросы в стиле REST и проанализировать, как POST преобразуется в Delete и поместите запросы
4. Введение в использование @cookievalue
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.