Springmvc(四)各种方法的汇总

绿色为重要
一、前台请求参数
@RequestMapping("/test")                                                                                               //可以为空 默认为0     如果是Integer的话,后面两个可以不写,也会显示null
public String test(@RequestParam("username") String un,@RequestParam(value="age",required=false,defaultValue="0") int age){
……
}

二、参数映射到路径中
@RequestMapping("/test/ {id}")    //一般是嵌入增删改查里面,简单时候就是可以少些几个input,再练习练习,查查资料看,这个挺关键的一个技术
public String test(@PathVariable("id") Integer id){
    ...out(id);
}

三、hiddenHttpMethodFilter过滤器(GET\POST\PUT\DELETET提交表单)
web.xml配置:

jsp:  get是查,增删改都是post,post是新增,PUT是修改,DELETE是删除
<form action="test/1" method="post">
    如果是put和delete需要加<input type="hidden" name="_method" value="DELETE"/>//必须是完全一样的
    ...
</form>
后台:
@RequestMapping(value="/test/{id}",method=RequestMethod.DELETE)      
public String test(@PathVariable Integer id){
    ...out(id);
}

四、存入session
类方法中都是正常写
类注解:
@SessionAttributes(value={"user"},types={String.class})
解释:values里面的值是map的key,写多少都行
              type是属性,这里是说只要是String,就写入session

五、ModelAttribute(就是直接注入对象的属性,但是 一些属性 比如密码和创建日期 是不能修改 的,就需要用到)
正常form提交,正常的属性注入,假如传入的对象是User
那么类里面加一个方法即可:
@ModelAttribute   
//只要方法标注了这个,那么这个方法在执行之前就会被springmvc调用,这里的用处就是在程序调用这个方法之前,从数据库里面查出来的User对 象其实已经放到了requset或是session里面了;
而且,如果不加这个方法,其他的方法需要注入User属性,但是属性不完全,并且还有 @SessionAttributes values=(values={"user"}) 的话,会报错。                                                                //id不是必须的
public void getUser(RequestParam(value="id",required=false) Integer id,Map<String ,Object> map){
    if(id!=null){                                           //id可以为空,为空的时候,要么就没传这个对象,要么就是新建这个对象,都和密码没有关系
         User user=new User(.......);           //相当于从 数据库 里面取到这个对象,这里简单示例
         map.put("user",user);                       //注意,这里的key必须是User的小写( User是别的方法的导入参数
    }
}
other:public  void test( User user){....}
其他的方法如果接受到User对象,并且没有密码属性,那么就自动装配了数据库里面的属性


②如果map.put("")里面确实不想为user,那么在别的方法注入的时候,就必须这样写:
假如这里的map.put("abc",abc);
那么 public String test(@ModelAttribute("abc") User user){....}  修饰即可

六、国际化
看视频26就可以了,使用fmt格式,jstl视图,加个配置文件直接搞定
mvc.xml里面也可以配置直接跳转,使用mvc标签

七、mvc有自己的页面表单标签,form:form。。。不知道是否好用。配合验证是挺好

八、数据格式化
1、配置文件:一般是默认的,如果是需要自定义的话,那么就看视频35
<bean id="conversionService"                 
          class="org.springframework.format.support.FormattingConversionServiceFactoryBean">   
</bean>  
2、实体类:
     @NotEmpty                        //非空
    private String lastName;
    @Email                                 //一般的email格式
    private String email;    
    @Past                                   //验证比当前时间晚
    @DateTimeFormat(pattern="yyyy-MM-dd")//设置格式
    private Date birth;     
    @NumberFormat(pattern="#,###,###.#") //设置格式
    private Float salary;

九、错误验证,自定义(一般不用,如果需要返回自己的错误提示,就用这个,40虽然是国际化,但是也是39的延伸,很简单)
视频39、40

十、Json
@responsebody,和3个jar包,直接看视频就行

十一、文件上传
方法传参:@RequestParam("name") MultipartFile file
web.xml需要配置,视频47
留了一个问题,如果是多文件上传怎么办?

十一、异常处理
spring配置文件:
     <mvc:interceptors>
        <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean>
    </mvc:interceptors>  
统一抛出异常:
    1、首先,在handler里面找到对应的异常抛出方法,如果找不到,就会找 @ControllerAdvice注解的类
各个抛出的类写法和一般的controller方法写法是一致的
    @ExceptionHandler({ArithmeticException.class})  //这是一个异常的类名,最大一般是RuntimeException,运行时错误
    public ModelAndView handleArithmeticException(Exception ex){
        ModelAndView mv=new ModelAndView("error");
        mv.addObject("exception",ex);
        return mv;
    }  
统一的:
新建类
@ControllerAdvice
public class handleException {
    @ExceptionHandler({ RuntimeException   .class})
    public ModelAndView handleArithmeticException(Exception ex){
         其他都一样

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值