Spring MVC Controller

1.@RequestMapping注解

        在Spring MVC中使用@RequestMapping将请求与处理方法一一对应,@RequestMapping负责将不同请求映射到对用的控制器方法中

@Controller
@RequestMapping("/user")
public class UserController{
    @RequestMapping("/showUser")
    public String showUser(){
        return "ShowUser";
    }
}

注意:类上的@RequestMapping对应类里面所有请求的路径,例如:/user/showUser

也就是类注解url+方法注解url

为了方便维护程序,建议采用类级别注解,将相关处理放在同一控制器中

@RequstMapping指定的URL中可以含有变量参数,也可以设置多个映射URl地址

同时使用@PathVariable指定形参接受url中的参数值

@Controller
@RequestMapping(value="abc")
public class HelloController{
    @RequestMapping(value={"/hello","/hello/{username}"})
    public String hello(@PathVariable("username")) String username){
        System.out.println(username);
        return "hello";
    }
}

 @RequestMapping可以通过method属性来限制请求的类型,如GET、POST

method使用枚举类RequestMethod来定义请求类型

如果URL请求方式和Action中method属性值不相符,则拒绝该请求

@Controller
@RequestMapping(value="abc")
public class HelloController{
    @RequestMapping(value={"/hello","/hello/{username}"},method=Requestmethod.GET)
    public String hello(@PathVariable("username")) String username){
        System.out.println(username);
        return "hello";
    }
}

也可以使用组合注解来限制方法接受请求的类型 

2.前后端数据交互

2.1视图向控制器传参

        (1)使用HttpServletRequest接受请求参数

        用request.getParameter("参数")来获取请求参数

        (2)使用简单数据类型接受请求参数

        直接在方法中写参数,但是要保证方法形参名要和用户请求参数名保持一致

        注意:如要不一致,则使用@RequestParam指定,例如:@RequestMapping("name")         String username

        (3)使用实体类对象接受请求参数

        在entity包下创建一个newParam类,放用户请求对应参数

        controller方法中参数放newParam param即可

2.2控制器向视图传参

        (1)通过HttpServletRequest传递数据

        使用request.setAttribute("param",param)传递,视图用EL表达式${}接受数据

        (2)使用Model或者Map或者ModelMap传递数据

        

@RequestMapping("/login")
public String login(Model model){
    String name = "我" ;
    model.addAttribute("name",name);
    return "login";
}

        (3)使用ModelAndView传递数据(推荐)

@RequestMapping("/login")
public ModelAndView login(){
    ModelAndView mv = new ModelAndView();
    mv.setViewName("login");
    String name = "我" 
    mv.addObject("name",name);
    return ModelAndView;
}

3.Spring MVC处理静态资源

3.1采用<mvc:default-servlet-handler /> 

在springmvc-servlet.xml中配置

<mvc:default-servlet-handler /> 

3.2配置default的servlet来处理

在web.xml中配置

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/resources/*</url-pattern>
</servlet-mapping>

3.3采用<mvc:resources />配置

在springmvc-servlet.xml中配置

<mvc:resources location="/,classpath:/META-INF/publicResources/" mapping="/resources/**" />

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值