Недавно я начал связываться с платформой SpringMVC. Эта структура очень удобна в использовании. После того, как фреймворк будет создан, код почти одинаковой шаблон. Конечно, чтобы добраться до этого момента, вы должны убедиться, что ваша конфигурация, связанная с SpringMVC, была завершена, а конфигурация верна!
Как мой первый блог о S-Flat Ringmvc, этот блог в основном рассказывает о том, как настроить SpringMVC и может нормально вернуться в объект Bean. Компания Bean здесь обычно возвращается на переднюю часть в виде струны JSON.
Используемый инструмент разработки является Eclipse, который также является относительно популярным инструментом разработки. Это можно считать, что он используется всеми, но уровень мастерства отличается!
Конкретная конфигурация заключается в следующем:
web.xml:
<? xml version = "1.0" Encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://xmlns.jcp.org/xml/ns/javaee "//xmlns.jcp.org/xml/ns/javaee "//xmlns.jcp.org/xml/ns/javaee xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi: schemaLocation = "http://xmlns.jc.jorgmse http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-4.0.0.x.0.0.0.0.x. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "id =" webapp_id "version =" 3.1 "> <contect-param> <param-name> contextConfiglocation </param-name </param-name </param-name </param-name> <param-value> classpath: ApplicationContext.xml </param-value> </context-param> <lailerer> <lloader-class> org.springframework.web.context.contextlisterlistener </sluster-class> </levesser> <sishing-dame> returnjsondemo </display-name> <bellodfile> <belless-file> index> index> index> index> index> index> </werveding-file-list> <servlet> <servlet-name> диспетчер </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <initparam> <param-name> contextConfiglocation </param-name> <param-value> classpath: dispatcher-servalce-salue </param-name> <param-value> classpath: dispatcher-servale.xerue </param-name> <param-value> classpath: diservater-servure.xerfletc </init-param> </servlet> <servlet-mapping> <servlet-name> диспетчер </servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
Dispatcher-servlet.xml:
<? xml version = "1.0" Encoding = "UTF-8"?> <Beans xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://www.spramework.orgg/schema" xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi: schemaLocation = "http://xmlns.jc.jorgmse http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.0.x.0.x.0.x.0.x.0.0.0.x.0.0.x.0.x.0.x.0.x.0.x.0.x.0.0.x.0.0.x.0.0.0.x.0.x.0.x.0.x.0.x. http://www.springframework.org/schema/context http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <mvccmals-mvler/defl <Контекст: Component-Scan Base-package = "com.zyq.springmvc.controller"> <Контекст: exclude-filter type = "annotation" Expression = "org.springframework.seertype.service" /> < /context: component-scan> <context: contation-config /> <mvc: annotation-raven> <mvc> <mvc> name = "Поддержка MediaTypes"> <sist> <value> text/plain; charset = utf-8 </value> <datue> text/html; charset = utf-8 </value> </list> </property> </bean> <bean> <property name = "Поддержкамедедиатип"> <Stare> <dute> application/json; charset = utf-8 </value> <dulch> Application/x-Www-form-Urlencoded; charset = utf-8 </value> </list> </property> </bean> </mvc: converters> </mvc: annotation-viven> </beans>
Существует также ApplicationContext.xml, но я ничего не пишу в нем, поэтому я не дам его!
Создайте новый index.jsp, который используется в качестве основного интерфейса, чтобы проверить, является ли возвратное значение каждого интерфейса нормальным! Код также дается здесь:
<%@ page language = "java" contentType = "text/html; charset = iso-8859-1" pageencoding = "iso-8859-1"%> <! Doctype html public "-// w3c // dtd html 4.01 Transitional // en" "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html; charset = iso-8859-1 "> <Tite> Основная страница </title> </habs> <h1> wornd whif> <h1> wornd whif> <h1> wornd whif> <h1> wornd whif> <h1> whif> <h1> whif> <h1> whif> <h1> whif> <h1> action="/ReturnJsonDemo/first"> <input type="submit" value="first" /> </form> <form action="/ReturnJsonDemo/second"> <input type="submit" value="second" /> </form> <form action="/ReturnJsonDemo/third"> <input type="submit" value="third" /> </form> <form action="/ReturnJsonDemo/fourth"> <input type = "отправить" value = "четвертый"/> </form> </body> </html>
На этом этапе все конфигурации в основном завершены, а затем объявляется контроллер. Конкретный код относительно прост, и они в основном находятся в фиксированном формате!
Maincontroller.java
пакет com.zyq.springmvc.controller; import java.text.simpledateformat; импорт java.util.arraylist; import java.util.hashmap; import java.util.list; import java.util.map; импорт org.sprramework.certype.controller; org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.responsebody; импорт com.zyq.springmvc.bean.commonbean; importcombersmovca @Responsebody public commonbean getFirst () {commonbean bean = new Commonbean (); Bean.SetResultCode («Успех»); bean.settimestamp (new SimpleDateFormat ("yyyy/mm/dd HH: MM: SS"). Format (System.currentTimeMillis ())); bean.setdata («Это первое сообщение»); вернуть бон; } @RequestMapping ("/second") @Responsebody public commonbean getSecond () {commonbean bean = new Commonbean (); Bean.SetResultCode ("SS"); bean.settimestamp (new SimpleDateFormat ("yyyy/mm/dd HH: MM: SS"). Format (System.currentTimeMillis ())); Список <string> data = new ArrayList <> (); data.add ("java"); data.add ("c"); data.add ("python"); data.add ("c ++"); bean.setdata (данные); вернуть бон; } @RequestMapping ("/third") @Responsebody public commonbean getThird () {commonbean bean = new Commonbean (); Bean.SetResultCode («Успех»); bean.settimestamp (new SimpleDateFormat ("yyyy/mm/dd HH: MM: SS"). Format (System.currentTimeMillis ())); Map <string, string> data = new hashmap <> (); data.put ("First", "java"); data.put ("второй", "python"); data.put ("третий", "c ++"); data.put ("четвертый", "c"); bean.setdata (данные); вернуть бон; } @RequestMapping ("/четвертый") @Responsebody public commonbean getfourth () {commonbean bean = new Commonbean (); Bean.SetResultCode («Успех»); bean.settimestamp (new SimpleDateFormat ("yyyy/mm/dd HH: MM: SS"). Format (System.currentTimeMillis ())); Sonbean Sonbean = новый Sonbean (); Sonbean.Setage (25); Sonbean.SetName («восторг хакера»); Sonbean.Setgender («Мужчина»); Bean.SetData (Sonbean); вернуть бон; }}Запуск эффект кода заключается в следующем:
Кажется, что разные браузеры имеют разные операции запроса для интерфейсов. При использовании интерфейса запроса Eclipse будет загружен файл JSON, а содержимое файла является строкой JSON.
При настройке полного проекта вам необходимо использовать пакет JAR Springframework и соответствующий пакет JAR Jackson. Tomcat8.5 Я использую ошибку при запуске, и вам нужно представить пакет Gral-Log JAR.
Объявив интерфейс, который возвращает строку JSON, обязательно используйте аннотацию @Responsebody, которая напишет данные о возврате интерфейса в область корпуса в ответе, который должен передать его обратно к передней части.
Когда я тестировал, я столкнулся с проблемой. При возврате бобов я могу вернуть только пакеты классов, но не наследование класса или наследство интерфейса. Например:
Если вы вернете родительский завод, который содержит роды внутри, это нормально!
Если когда интерфейс определяется, возвращаемый родительский класс является фактическим возвращенным подклассом, а в настоящее время сообщается об ошибке, а подкласс не может быть преобразован в родительский класс, это означает, что вы не можете преобразовать объект строки в объект объекта. В связи с этим он должен основываться на родительском классе, который не может найти атрибуты подкласса, что приводит к неспособности преобразовать объект бобов в строку JSON. Следовательно, не разрешается объявлять бобы в интерфейсе в рамках, и подкласс бобов возвращается (эти причины являются просто личными предположениями, и конкретные причины также требуют анализа кода в рамках)!
Хорошо, это все о возвращении струн JSON! Прикрепите исходный код демонстрации, пакет JAR, который вам нужен, также находится внутри, вы можете загрузить его самостоятельно, если вам это нужно!
Скачать исходный код
Приведенный выше пример объяснения использования SpringMVC для возврата строк JSON - это весь контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.