基于第二讲,这一讲我们主要讲解包含以下内容

  1. springBoot添加对freemarker的支持
  2. 使用@RestController处理ajax请求
  3. 使用@PathVariable注解获取url参数
  4. 使用@RequestParam注解获取请求参数

(一)springBoot添加对freemarker的支持

(1)首先要使用freemarker,我们需要添加对freemarker的支持,需要在pom.xml中添加依赖,操作如下

(2)编写FreemarkerAction,返回数据视图

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping("/freemarker")
public class FreemarkerAction { @RequestMapping("/say")
public ModelAndView say() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("msg", "hello freemarker");
modelAndView.setViewName("index");
return modelAndView;
}
}

(3)在templates目录下新建index.html,更改名为index.ftl,这个是Freemarker的格式要求,内容如下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
msg show :${msg}
</body>
</html>

(3)重启服务,访问http://localhost:8888/hello/freemarker/say,结果如下

(二)使用@RestController处理ajax请求

(1)在webapp目录下新增index.html,同时引用的是官网的jquery-2.1.1.min.js,内容如下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript">
function show(){
$.post("ajax/test",{},function(result){
alert(result);
});
}
</script>
<body>
<button onclick="show()">点击这里</button>
</body>
</html>

(2)新增AjaxActionTest。内容如下:

package com.example.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
@RequestMapping("/ajax")
public class AjaxActionTest { @RequestMapping("/test")
public String test() { return "{'name':'李四','age':'24'}";
}
}

(3)重启服务。浏览器访问:http://localhost:8888/hello/

(三)使用@PathVariable注解获取url参数

(1)在类FreemarkerAction类中,新增方法say2,如下:

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping("/freemarker")
public class FreemarkerAction { @RequestMapping("/say")
public ModelAndView say() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("msg", "hello freemarker");
modelAndView.setViewName("index");
return modelAndView;
} @RequestMapping("/{msg}")
public ModelAndView say2(@PathVariable("msg") String msg) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("msg", msg);
modelAndView.setViewName("index");
return modelAndView;
}
}

(1)浏览器访问:http://localhost:8888/hello/freemarker/hellorestful,结果如下图:这种风格类似于restful的支持

(四)使用@RequestParam注解获取请求参数

(1)在index.html中新增一个链接,如下图

(2)在FreemarkerAction新增方法 say3

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping("/freemarker")
public class FreemarkerAction { @RequestMapping("/say")
public ModelAndView say() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("msg", "hello freemarker");
modelAndView.setViewName("index");
return modelAndView;
} @RequestMapping("/{msg}")
public ModelAndView say2(@PathVariable("msg") String msg) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("msg", msg);
modelAndView.setViewName("index");
return modelAndView;
} @RequestMapping("/reqParam")
public ModelAndView say3(@RequestParam(value="msg",required=false) String msg) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("msg", msg);
modelAndView.setViewName("index");
return modelAndView;
}
}

(2)浏览器上访问http://localhost:8888/hello/  点击链接  ,结果如下

SpringBoot入门学习(三)的更多相关文章

  1. SpringBoot入门(三)——入口类解析

    本文来自网易云社区 上一篇介绍了起步依赖,这篇我们先来看下SpringBoot项目是如何启动的. 入口类 再次观察工程的Maven配置文件,可以看到工程的默认打包方式是jar格式的. <pack ...

  2. SCARA——OpenGL入门学习三

    OpenGL入门学习[三] 在第二课中,我们学习了如何绘制几何图形,但大家如果多写几个程序,就会发现其实还是有些郁闷之处.例如:点太小,难以看清楚:直线也太细,不舒服:或者想画虚线,但不知道方法只能用 ...

  3. SpringBoot入门学习看这一篇就够了

    1.SpringBoot是什么? SpringBoot是一套基于Spring框架的微服务框架. 2.为什么需要SpringBoot 由于Spring是一个轻量级的企业开发框架,主要的功能就是用于整合和 ...

  4. 【Java】SpringBoot入门学习及基本使用

    SpringBoot入门及基本使用 SpringBoot的介绍我就不多说了,核心的就是"约定大于配置",接下来直接上干货吧! 本文的实例: github-LPCloud,欢迎sta ...

  5. dubbo入门学习(三)-----dubbo整合springboot

    springboot节省了大量的精力去配置各种bean,因此通过一个简单的demo来整合springboot与dubbo 一.创建boot-user-service-provider 本篇博文基于上篇 ...

  6. springboot入门学习1

    springboot学习1 SpringBoot对Spring的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑 业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中 ...

  7. SpringBoot入门学习记录(一)

    最近,SpringBoot.SpringCloud.Dubbo等框架非常流行,作为Coder里的一名小学生,借着改革开放的东风,自然也是需要学习学习的,于是将学习经历记录于此,以备日后查看. 官网:h ...

  8. SpringBoot入门学习(一)

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.用我 ...

  9. SpringBoot入门教程(三)通过properties实现多个数据库环境自动切换配置

    前面的文章已经介绍了CentOS部署SpringBoot项目从0到1的详细过程,包括Linux安装ftp.Tomcat以及Java jdk的全部过程.这篇文章主要介绍关于springboot如何通过多 ...

随机推荐

  1. Angular2 组件与模板 -- 输入和输出属性

    Input and Output properties 输入属性是一个带有@Input 装饰器的可设置属性,当它通过属性绑定的形式被绑定时,值会"流入"到这个属性. 输出属性是一个 ...

  2. C# winform 中MessageBox用法大全(附效果图)

    我们在程序中经常会用到MessageBox. MessageBox.Show()共有21中重载方法.现将其常见用法总结如下: 1.MessageBox.Show(“Hello~~~~”); 最简单的, ...

  3. cocos中lua使用shader实例

    local prog = cc.GLProgram:create("res/shader/light2d.vsh","res/shader/light2d.fsh&quo ...

  4. 【原】storm源码之一个class解决nimbus单点问题

    一.storm nimbus 单节点问题概述 1.storm集群在生产环境部署之后,通常会是如下的结构:从图中可以看出zookeeper和supervisor都是多节点,任意1个zookeeper节点 ...

  5. dbForge mysql数据库比对

    Comparison选项卡,新建一个表结构比较, (将source库的表结构变化应用到target库) 下面示例中,source用positec_uat,     target用positec_pro ...

  6. jdk1.7访问https报javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure问题解决

    本地jdk版本java version "1.8.0_31",代码中已对https做了相应处理:信任所有来源证书,运行正常:上包到服务器(服务器jdk版本java version ...

  7. Android 满屏显示自定义的View,并进行移动

    新建一个类,继承View package com.topcrab.mygame; import android.content.Context; import android.graphics.Bit ...

  8. Jenkins 持续集成配置

    Jenkins搭建.NET自动编译测试与发布环境 Jenkins之Deploy部署(包括站点和类库项目) * 续篇--TFS+MSbuild+jenkins 实现 持续集成+自动部署到WEB网站 Je ...

  9. http请求及json发送与解析 post string

    golang http请求及json流解析 - 长风v持成的博客 - CSDN博客 https://blog.csdn.net/u011677067/article/details/80852158 ...

  10. 剑指Offer——数字在排序数组中出现的次数

    题目描述: 统计一个数字在排序数组中出现的次数. 分析: 二分变形.二分查找最左边和最右边k的位置,然后相减加一就是结果. 代码: class Solution { public: int GetNu ...