使用IDEA创建简单的Spring MVC项目(Hello World)

1. 转载原文

原文地址:https://www.cnblogs.com/wormday/p/8435617.html

期间遇到的问题解决方法
1、Spring配置问题——元素 “context:component-scan” 的前缀 “context” 未绑定,https://blog.csdn.net/lhc1105/article/details/50456881

2. 实操

运行环境

  • Java 1.7
  • Idea 2018.3
  • Spring-4.3.18
  • Spring MVC-4.3.18

2.1 不同路由的写法

package com.helloworld;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/hi")
public class HelloController {

    /**
     * 基本路由
     * @param model
     * @return
     */
    @RequestMapping("/say")
    public String say(Model model){           // 参数中传入Model
        model.addAttribute("name","wormday"); // 指定Model的值
        model.addAttribute("url","http://www.cnblogs.com/wormday/p/8435617.html"); // 指定Model的值
        return "say";
    }

    /**
     * 获取URL参数的路由
     * 在Spring MVC中,可以使用@PathVariable注释将一个方法参数绑定到一个URI模板变量的值
     * @param model
     * @param params
     * @return
     */
    @RequestMapping("/pathVar/{params}")
    public String pathVar(Model model,
                          @PathVariable(value = "params") String params){

        model.addAttribute("params", params);
        return "pathVar";
    }

    /**
     * 非模板路由
     * 如果您使用 @ResponseBody 注释到方法, spring 将尝试转换它的返回值,并自动写入到HTTP响应。在这种情况下,并不需要一个特定的视图。
     * 注:方法不一定需要返回字符串类型。
     * @param model
     * @return
     */
    @RequestMapping(value = "/responseBody")
    @ResponseBody
    public String responseBody(Model model){
        return "I'm response body from back end!";
    }
	/**
     * 重定向路由
     * @param model
     * @return
     */
    @RequestMapping(value = "/redirect", method = RequestMethod.GET)
    public String redirect(Model model) {

        // Do somethong here

        return "redirect:/hi/say";
    }
}

你可能感兴趣的:(Java)