6.4 springMvc 入门案例,映射

一.入门案例

1.和spirng配置差不多,需要springMvc的config类,其次多了个servelt初始化类,其中管理的加载springMVC控制类,和设置由mvc管理的路径

//这是多出来的serveltInit类
//web容器配置类
public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
    //加载springmvc配置类,产生springmvc容器(本质还是spring容器)
    protected WebApplicationContext createServletApplicationContext() {
        //初始化WebApplicationContext对象
        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        //加载指定配置类
        ctx.register(SpringMvcConfig.class);
        return ctx;
    }

    //设置由springmvc控制器处理的请求映射路径
    protected String[] getServletMappings() {
    //加斜杠代表全部由mvc管理
        return new String[]{"/"};
    }

    //加载spring配置类
    protected WebApplicationContext createRootApplicationContext() {
        return null;
    }
}

此配置类中配置的Annotation和之前spring不同,中间多个web,之后进行register注册即可。
2.表现层

@Controller

//设置映射路径 当前路径可以为/save/print
@RequestMapping("/save")
public class UserController {

    //设置映射路径为/save,即外部访问路径
    @RequestMapping("/print")
    //设置当前操作返回结果为指定json数据(本质上是一个字符串信息)
    @ResponseBody
    public String save(){
        System.out.println("user save ...");
        return "{'info':'springmvc'}";
    }

    //设置映射路径为/delete,即外部访问路径
    @RequestMapping("/delete")
    @ResponseBody
    public String delete(){
        System.out.println("user save ...");
        return "{'info':'springmvc'}";
    }
}

@Controller注解加在类的外面
@RequestMapping(“/save”),放在类外,设置一个目录路径,设置在类里表示不同的目录路径,例如当前代码表示的2个路径/save/print和/save/delete

3.spring与springMvc冲突解决办法
第一种办法:在scan扫描中使用大括号{xx,xx,xx}xx代表spring需要扫描的包名。
第二种办法:排除法,在scan扫描中首先使用value设置父包名,在使用过滤器excludeFilters设置需要过滤的内容
type代表需要排除的注解类型
classes代表需要排除的包名

ComponentScan(value="com.itheima",
    excludeFilters = @ComponentScan.Filter(
        type = FilterType.ANNOTATION,
        classes = Controller.class
    )
)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值