Recentemente, comecei a entrar em contato com a estrutura Springmvc. Essa estrutura é muito conveniente de usar. Depois que a estrutura é construída, o código é quase o mesmo padrão. Obviamente, para chegar a esse ponto, você deve garantir que sua configuração relacionada ao Springmvc tenha sido concluída e a configuração esteja correta!
Como meu primeiro blog sobre o s-flat ringmvc, este blog fala principalmente sobre como configurar o springmvc e pode fazê-lo retornar à entidade do feijão normalmente. A entidade de feijão aqui é geralmente devolvida ao front end na forma de uma corda JSON.
A ferramenta de desenvolvimento usada é o Eclipse, que também é uma ferramenta de desenvolvimento relativamente popular. Pode ser considerado usado por todos, mas o nível de proficiência é diferente!
A configuração específica é a seguinte:
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: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi: schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_1.xsd httttp://wwwwwwww.pring http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd" id = "webApp_id" versão = "3.1"> <context-param> <amam-name> contextConfigLocation </param-name> <amam-value> classe: ApplicationContext.xml </param-value> </context-poram> <listerner> <vister-class> orgld.erringFrame> <lame-name> returnjsondemo </sisiber-name> <lmed-File-List> <lmed-File> index.jsp </limk-File> </lort-File-List> <ervlet> <Verlet-Name> Dispatcher </vletname> <ervlet-class> org.springframework.web.intlet.vistlestlet> <param-name>contextConfigLocation</param-name> <param-value>classpath:dispatcher-servlet.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping></web-app>
Dispatcher-Servlet.xml:
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns: xsi = "http://www.w3.org/2001/xmlschema-innsthance" xmlns = "http://wwwwwwwwwwwww.springrance" xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 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-4.0.xsd http://www.springframework.org/schema/Context http:/wwwwwww.springframework/schema/Context http:/wwwww.springframework.org/schemaxt http:/wwwwwwwwww.springframework.org/schemaxt http:/www.springframework.org/schemax http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <mvc: default-ervlet-handler/> <contexto: componente-scan-package =" com.zyq.springmvc.Controller "> Expression = "org.springframework.steretype.service"/> </Context: component-scan> <Contexto: anotação-config/> <mvc: anotação-driven> <mvc: message-confters> <Bean> <nome da propriedade = "suportedmediaTepes"> <late> <Value> text; <Value> text/html; charset = utf-8 </value> </list> </propriedade> </bean> <iBean> <propriedade name = "supportedmediatypes"> <list> <value> application/json; charset = utf-8 </value> <value> application/x-www-forma-urlncoded; charset = utf-8 </value> </list> </property> </bean> </mvc: message-converters> </mvc: anotação-driven> </ Beans>
Há também um ApplicationContext.xml, mas eu não escrevo nada nele, então não vou dar!
Crie um novo index.jsp, que é usado como a interface principal para testar se o valor de retorno de cada interface é normal! O código também é fornecido aqui:
<%@ Page Language = "java" contentType = "text/html; charset = iso-8859-1" PageEncoding = "ISO-8859-1"%> <! "http://www.w3.org/tr/html4/loose.dtd"><html> <head><meta http-equiv =" content-type "content =" text/html; charset = iso-885-1 "> <title> main <//<//html; action = "/returnJSondemo/First"> <input type = "submit" value = "primeiro"/> </form> <form ação = "/returnJSondemo/Second"> <input type = "submit" value = "Second"/> </form> <form ação = "ReturnJSondemo/Terceiro"> <input "" Action = "/returnJSondemo/Quarto"> <input type = "submit" value = "Quarto"/> </morm> </body> </html>
Nesse ponto, todas as configurações são basicamente concluídas e, em seguida, um controlador é declarado. O código específico é relativamente simples e eles estão basicamente em um formato fixo!
MainController.java
pacote com.zyq.springmvc.controller; importar java.text.simpledEformat; importar java.util.ArrayList; importar java.util.hashmap; importar java.util.list; import java.util.map; importação; org.springframework.web.bind.annotation.requestMapping; importar org.springframework.web.bind.annotation.Responsebody; importar com.zyq.springmvc.bean.commonbean; impornoqer.sPringmvc.BeanBeanBean. @RequestMapping ("/First") @ResponseBody Public CommonBean getFirst () {CommonBean Bean = new CommonBean (); bean.setResultCode ("Sucesso"); bean.settimestamp (novo SimpleDateFormat ("yyyy/mm/dd hh: mm: ss"). formato (system.currenttimemillis ())); bean.setData ("Esta é a primeira mensagem"); Retornar Bean; } @RequestMapping ("/Second") @ResponseBody Public CommonBean getSecond () {CommonBean Bean = new CommonBean (); bean.setResultCode ("ss"); bean.settimestamp (novo SimpleDateFormat ("yyyy/mm/dd hh: mm: ss"). formato (system.currenttimemillis ())); List <String> data = new ArrayList <> (); data.add ("java"); data.add ("c"); data.add ("python"); data.add ("c ++"); bean.setData (dados); Retornar Bean; } @RequestMapping ("/terceiro") @ResponseBody Public CommonBean getThird () {CommonBean Bean = new CommonBean (); bean.setResultCode ("Sucesso"); bean.settimestamp (novo SimpleDateFormat ("yyyy/mm/dd hh: mm: ss"). formato (system.currenttimemillis ())); Mapa <string, string> data = new hashmap <> (); data.put ("primeiro", "java"); data.put ("segundo", "python"); data.put ("terceiro", "c ++"); data.put ("Quarto", "C"); bean.setData (dados); Retornar Bean; } @RequestMapping ("/Fourth") @ResponseBody Public CommonBean getFourth () {CommonBean Bean = new CommonBean (); bean.setResultCode ("Sucesso"); bean.settimestamp (novo SimpleDateFormat ("yyyy/mm/dd hh: mm: ss"). formato (system.currenttimemillis ())); SOLBEAN SONBEAN = New Sonbean (); SOnBean.setage (25); SOnBean.setName ("Delight's Hacker"); sunbean.setgender ("masculino"); Bean.setData (Sonbean); Retornar Bean; }}O efeito em execução do código é o seguinte:
Parece que diferentes navegadores têm diferentes operações de solicitação para interfaces. Ao usar a interface de solicitação do Eclipse, um arquivo JSON será baixado e o conteúdo do arquivo é uma string json.
Ao configurar um projeto completo, você precisa usar o pacote Springframework JAR e o pacote JAR relacionado de Jackson. O tomcat8.5 Eu uso solicita um erro ao executar e você precisa introduzir o pacote JAR de log comum.
Ao declarar uma interface que retorna uma sequência JSON, use a anotação @ResponseBody, que gravará os dados de retorno da interface para a área do corpo na resposta, que deve passar de volta ao front end.
Quando eu estava testando, encontrei um problema. Ao devolver o feijão, só posso retornar pacotes de classe, mas não herança de classe ou herança de interface. Por exemplo:
Se você devolver um pai, que contém um parto dentro, tudo bem!
Se quando a interface for definida, a classe pai retornada é a subclasse retornada real e o erro é relatado no momento, e a subclasse não poderá ser convertida em classe pai, isso significa que você não pode converter o objeto String em um objeto de objeto. Nesse sentido, deve ser baseado na classe pai que não consegue encontrar os atributos da subclasse, o que leva à incapacidade de converter o objeto Bean em uma string json normalmente. Portanto, não é permitido declarar feijão na interface na estrutura e a subclasse do feijão é retornada (esses motivos são apenas palpites pessoais, e os motivos específicos também exigem análise do código na estrutura)!
Ok, isso é tudo sobre retornar Strings JSON! Anexe o código -fonte da demonstração, o pacote JAR que você precisa também está dentro, você pode fazer o download mesmo, se precisar!
Download do código -fonte
O exemplo acima explicações do uso do SpringMVC para retornar o JSON Strings é todo o conteúdo que eu compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.