最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot的Controller控制層和頁面

 更新時間:2017年04月24日 13:56:17   投稿:mrr  
這篇文章主要介紹了Spring Boot的Controller控制層和頁面,需要的朋友可以參考下

一.項目實例

1.項目結(jié)構(gòu)


2.項目代碼

1).ActionController.Java:

package com.example.controller;
import java.util.Date;
import java.util.Map;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping("/action")
public class ActionController {
  // 從 application.properties 中讀取配置,如取不到application.properties定義的值,則取默認值為Hello Shanhy
  @Value("${application.hello:Hello Shanhy}")
  private String hello;
  /**
   * 默認頁<br/>
   * @RequestMapping("/") 和 @RequestMapping 是有區(qū)別的
   * 如果不寫參數(shù),則為全局默認頁。
   * 如果加了參數(shù)“/”,則只認為是根頁面。
   */
  @RequestMapping(value = {"/","/index"})
  public String index(Map<String, Object> model){
    // 直接返回字符串,框架默認會去 spring.view.prefix 目錄下的 (index拼接spring.view.suffix)頁面
    // 本例為 /WEB-INF/jsp/index.jsp
    model.put("time", new Date());
    model.put("message", this.hello);
    return "index";
  }
  /**
   * 響應到JSP頁面page1
   */
  @RequestMapping("/page1")
  public ModelAndView page1(){
    // 頁面位置 /WEB-INF/jsp/page/page1.jsp
    //page/page1:頁面路徑地址/頁面名稱
    ModelAndView mav = new ModelAndView("page/page1");
    mav.addObject("content", hello);
    return mav;
  }
  /**
   * 響應到JSP頁面page1(可以直接使用Model封裝內(nèi)容,直接返回頁面字符串)
   */
  @RequestMapping("/page2")
  public String page2(Model model){
    // 頁面位置 /WEB-INF/jsp/page/page1.jsp
    model.addAttribute("content", hello + "(第二種)");
    return "page/page1";
  }
}

2).application.properties:

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
application.hello=Hello TOM

3).index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Spring Boot Sample</title>
</head>
<body>
Time: ${time}
<br>
Message: ${message}
</body>
</html>

4).page1.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Spring Boot Sample</title>
</head>
<body>
<h1>${content }</h1>: ${message}
</body>
</html>

5).pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>Spring-boot-simple</artifactId>
  <version>0.0.1-SNAPSHOT</version>
<!--   <packaging>jar</packaging> -->
  <packaging>war</packaging>
  <name>Spring-boot-simple</name>
  <description>Demo project for Spring Boot</description>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.2.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-jasper</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>

3.運行啟動項目

訪問web地址:http://localhost:8080/action/ ,如下所示:

二.代碼解析說明

1.關(guān)于在Spring4.x中,@RestController和@Controller的區(qū)別

@RestController注解相當于@ResponseBody + @Controller合在一起的作用。所以,以后定義controller的時候,可以直接使用@Controller,如果需要返回json可以直接在方法中添加@ResponseBody即可。

a).如果只是使用@RestController注解Controller,則Controller中的方法無法返回jsp頁面,配置的視圖解析器InternalResourceViewResolver則不起作用,返回的內(nèi)容就是Return 里的內(nèi)容(String/JSON)。

例如:本來應該到success.jsp頁面的,則其顯示success.

public String test(HttpServletRequest request, HttpServletResponse response){
   return "success";
}

b).如果使用@RestController注解Controller,需要返回到指定頁面,則需要配置視圖解析器InternalResourceViewResolver,可以利用ModelAndView返回試圖。

@RequestMapping(value = "/test")
public String test(HttpServletRequest request, HttpServletResponse response){
   return newModelAndView("success");
}
c).如果使用@Controller注解Controller,如果需要返回JSON,XML或自定義mediaType內(nèi)容到頁面,則需要在對應的方法上加上@ResponseBody注解。
@ResponseBody
@RequestMapping(value = "/test")
public String test(HttpServletRequest request, HttpServletResponse response){
   return "success";
}

2.spring-boot 支持多種模版引擎包括:

a,F(xiàn)reeMarker
b,Groovy
c,Thymeleaf (Spring 官網(wǎng)使用這個)
d,Velocity
e,JSP (貌似Spring Boot官方不推薦,STS創(chuàng)建的項目會在src/main/resources 下有個templates 目錄,這里就是讓我們放模版文件的,然后并沒有生成諸如 SpringMVC 中的webapp目錄)

以上所述是小編給大家介紹的Spring Boot的Controller控制層和頁面,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 關(guān)于Scanner中nextInt()、nextLine()等方法總結(jié)與問題解決

    關(guān)于Scanner中nextInt()、nextLine()等方法總結(jié)與問題解決

    這篇文章主要介紹了關(guān)于Scanner中nextInt()、nextLine()等方法總結(jié)與問題解決,具有很好的參考價值,希望對大家有所幫助。
    2022-11-11
  • Spring Boot 2.X整合Spring-cache(讓你的網(wǎng)站速度飛起來)

    Spring Boot 2.X整合Spring-cache(讓你的網(wǎng)站速度飛起來)

    這篇文章主要介紹了Spring Boot 2.X整合Spring-cache(讓你的網(wǎng)站速度飛起來),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Java中的異常Exception與處理方式詳解

    Java中的異常Exception與處理方式詳解

    這篇文章主要介紹了Java中的異常Exception與處理方式詳解, Java語言中,將程序執(zhí)行中發(fā)生的不正常情況稱為"異常"(開發(fā)過程中的語法錯誤和邏輯錯誤不是異常),需要的朋友可以參考下
    2024-01-01
  • Java多線程實現(xiàn)快速切分文件的程序

    Java多線程實現(xiàn)快速切分文件的程序

    這篇文章主要為大家詳細介紹了Java多線程實現(xiàn)快速切分文件的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-06-06
  • springboot實現(xiàn)小程序支付的項目實踐

    springboot實現(xiàn)小程序支付的項目實踐

    本文主要介紹了springboot實現(xiàn)小程序支付的項目實踐,?可以通過調(diào)用微信支付?API?實現(xiàn)支付功能,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • 簡單了解spring cloud 網(wǎng)關(guān)服務

    簡單了解spring cloud 網(wǎng)關(guān)服務

    這篇文章主要介紹了簡單了解spring cloud 網(wǎng)關(guān)服務,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • java堆排序概念原理介紹

    java堆排序概念原理介紹

    在本篇文章里我們給大家分享了關(guān)于java堆排序的概念原理相關(guān)知識點內(nèi)容,有需要的朋友們可以學習下。
    2018-10-10
  • Java?SpringAOP技術(shù)之注解方式詳解

    Java?SpringAOP技術(shù)之注解方式詳解

    這篇文章主要為大家詳細介紹了Java?SpringAOP技術(shù)之注解方式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Gradle的基本使用

    Gradle的基本使用

    這篇文章主要介紹了Gradle的基本使用方法,幫助大家更好的理解和學習Gradle的相關(guān)知識,感興趣的朋友可以了解下
    2021-03-03
  • Kotlin教程之基本數(shù)據(jù)類型

    Kotlin教程之基本數(shù)據(jù)類型

    這篇文章主要介紹了Kotlin教程之基本數(shù)據(jù)類型的學習的相關(guān)資料,需要的朋友可以參考下
    2017-05-05

最新評論

乌兰察布市| 方城县| 平武县| 大理市| 永清县| 承德县| 高阳县| 五寨县| 蒲江县| 津南区| 高邮市| 驻马店市| 望城县| 东乡| 万源市| 固镇县| 信丰县| 南京市| 阳山县| 诸暨市| 兴城市| 太和县| 平度市| 吴忠市| 茂名市| 拉萨市| 清水县| 枝江市| 雷山县| 平潭县| 三江| 兴山县| 新民市| 巨鹿县| 潮州市| 海伦市| 玉林市| 赤壁市| 长汀县| 项城市| 普定县|