Heim  >  Artikel  >  Java  >  Beispielanalyse einer Java SpringMVC-Datenantwort

Beispielanalyse einer Java SpringMVC-Datenantwort

WBOY
WBOYnach vorne
2023-05-21 12:16:06784Durchsuche

1) Seitensprung

Den String direkt zurückgeben: Diese Methode verkettet den zurückgegebenen String mit dem Präfix und Suffix des Ansichtsparsers und springt dann. ?? Daten werden häufig im Anforderungsfeld gespeichert und auf der JSP-Seite angezeigt. Wie speichert der Controller Daten im Anforderungsfeld?

① Wird über die setAttribute()-Methode des vom SpringMVC-Framework injizierten Anforderungsobjekts festgelegt. Beispielanalyse einer Java SpringMVC-Datenantwort

@RequestMapping("/quick2")
public ModelAndView quickMethod2(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("redirect:index.jsp");
    return modelAndView;
}
@RequestMapping("/quick3")
public ModelAndView quickMethod3(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");
    return modelAndView;
}

② Wird über die addObject()-Methode von ModelAndView festgelegt.

@RequestMapping("/quick")
public String quickMethod(HttpServletRequest request){
    request.setAttribute("name","zhangsan");
    return "index";
}

2) Daten zurückschreiben

String direkt zurückgeben: In der Grundstufe von Web greift der Client auf den Server zu. Wenn Sie den String direkt zurückschreiben und als Antworttext zurückgeben möchten, müssen Sie nur die Antwort verwenden .getWriter().print("hello world"), was ist also, wenn Sie einen String direkt in den Controller zurückschreiben möchten?

① Verwenden Sie Response.getWriter().print("hello world"), um Daten über das vom SpringMVC-Framework injizierte Antwortobjekt zurückzuschreiben. Zu diesem Zeitpunkt ist kein Ansichtssprung erforderlich, und der Rückgabewert der Geschäftsmethode ist Leere.

@RequestMapping("/quick3")
public ModelAndView quickMethod3(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");
    modelAndView.addObject("name","lisi");
    return modelAndView;
}

② Geben Sie die Zeichenfolge zurück, die direkt zurückgeschrieben werden muss. Zu diesem Zeitpunkt müssen Sie das SpringMVC-Framework jedoch über die Annotation @ResponseBody informieren. Die von der Methode zurückgegebene Zeichenfolge ist kein Sprung, sondern wird direkt in der http-Antwort zurückgegeben Körper.

@RequestMapping("/quick4")
public void quickMethod4(HttpServletResponse response) throws IOException {
    response.getWriter().print("hello world");
}

In der Entwicklung müssen wir häufig komplexe Java-Objekte in JSON-Format-Strings konvertieren. Zum Konvertieren können wir Jackson-Koordinaten verwenden.

@RequestMapping("/quick5")
@ResponseBody
public String quickMethod5() throws IOException {
    return "hello springMVC!!!"; 
}

2. Konvertieren Sie die Zeichenfolge im JSON-Format über Jackson und schreiben Sie die Zeichenfolge zurück.

<!--jackson-->
<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-core</artifactId>
 <version>2.9.0</version>
</dependency>
<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-databind</artifactId>
 <version>2.9.0</version>
</dependency> 
<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-annotations</artifactId>
 <version>2.9.0</version>
</dependency>

Objekte oder Sammlungen zurückgeben

Verwenden Sie SpringMVC, um uns dabei zu helfen, Objekte oder Sammlungen in JSON-Strings zu konvertieren und zurückzuschreiben, Nachrichtenkonvertierungsparameter für den Prozessoradapter zu konfigurieren und die Verwendung von Jackson zum Konvertieren von Objekten oder Sammlungen anzugeben, was wir benötigen Um Spring zu verwenden, konfigurieren Sie Folgendes in mvc.xml:

@RequestMapping("/quick7")
@ResponseBody
public String quickMethod7() throws IOException {
    User user = new User();
    user.setUsername("zhangsan");
    user.setAge(18);
    ObjectMapper objectMapper = new ObjectMapper();
    String s = objectMapper.writeValueAsString(user);
    return s;
}

Objekte oder Sammlungen direkt in der Methode zurückgeben

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
 <property name="messageConverters">
     <list>
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
     </list>
 </property>
</bean>

3) Konfigurieren Sie den Annotationstreiber

Fügen Sie @ResponseBody zur Methode hinzu, um eine Zeichenfolge im JSON-Format zurückzugeben, aber dies Die Konfiguration ist problematischer, der Konfigurationscode ist relativ groß, daher können wir den Annotationstreiber von mvc anstelle der obigen Konfiguration verwenden.

Unter den verschiedenen Komponenten von SpringMVC werden der Prozessor-Mapper, der Prozessor-Adapter und der View-Resolver als die drei Hauptkomponenten von SpringMVC bezeichnet.

Verwenden Sie , um RequestMappingHandlerMapping (Verarbeitungs-Mapper) und RequestMappingHandlerAdapter (Verarbeitungsadapter) automatisch zu laden, die in der Spring-xml.xml-Konfigurationsdatei verwendet werden können Annotationsprozessor und Adapterkonfiguration.

Verwenden Sie auch Standardmäßig integriert die zugrunde liegende Ebene Jackson, um Zeichenfolgen im JSON-Format von Objekten oder Sammlungen zu konvertieren.

@RequestMapping("/quick8")
@ResponseBody
public User quickMethod8() throws IOException {
    User user = new User();
    user.setUsername("zhangsan");
    user.setAge(18);
    return user;
}

4) Wissenspunkte

Datenantwortmethode von SpringMVC

1) Seitensprung

String direkt zurückgeben

Rückgabe über ModelAndView-Objekt

2 ) Daten zurückschreiben.

Rückgabezeichenfolge direkt
  • Objekt oder Sammlung zurückgeben

Das obige ist der detaillierte Inhalt vonBeispielanalyse einer Java SpringMVC-Datenantwort. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen