一、配置pom.xml
创建好maven项目后,进入pom.xml导入需要的jar包
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.easy</groupId>
<artifactId>MDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<springbootversion>2.6.4</springbootversion>
</properties>
<dependencies>
<!-- Springboot web启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${springbootversion}</version>
</dependency>
<!-- JSP页面依赖 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
<version>9.0.58</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- 开发工具包 热启动 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
<version>${springbootversion}</version>
</dependency>
</dependencies>
</project>
二、 配置yml
这样每次访问web-inf下的jsp就不需要写明全称了,而是直接写文件名就行
三 、创建application
package com.easy;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
四、
Staff类:
package com.easy.bean;
public class Staff {
private String name;
private String sex;
private int age;
public Staff() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Staff [name=" + name + ", sex=" + sex + ", age=" + age + "]";
}
}
HelloController类:
package com.easy.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.easy.bean.Staff;
@Controller
@RequestMapping("easy")
public class HelloController {
@RequestMapping("hello")
public String hello() {
/*方法中的返回值springmvc默认将他当作一个路径来解析 转发到此路径*/
return "index.jsp";
/*springmvc中转发和重定向
* 默认就是转发,也可以forward:路径
* 重定向使用redirect:路径
*
* */
//return "redirect:index.jsp";
}
@RequestMapping("demopage")
public String demoPage() {
//jsp页面应该放到web-inf文件夹下,通过转发访问
//return "WEB-INF/demo.jsp";
return "demo";
}
@RequestMapping("mydata")
//将方法返回值写入到回应对象中
@ResponseBody
public String getData() {
return "mydata---";
}
@RequestMapping("getstaff")
@ResponseBody
public Staff getStaff() {
Staff staff1=new Staff();
staff1.setName("张三");
staff1.setAge(18);
staff1.setSex("男");
return staff1;
}
@RequestMapping("mav")
public ModelAndView mav() {
ModelAndView mav=new ModelAndView();
mav.setViewName("demo");
return mav;
}
@RequestMapping("model")
public ModelAndView getModel() {
ModelAndView mav=new ModelAndView();
Staff staff2=new Staff();
staff2.setName("张三");
staff2.setAge(18);
staff2.setSex("男");
mav.addObject("staff", staff2);
mav.setViewName("demo");
return mav;
}
}
demo.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>demo</h1>
<%-- ${requestScope.staff.name 在request域中取这个值 也可以不标明} --%>
${staff.name }
</body>
</html>