Springmvc(四)各种方法的汇总
来源:互联网 发布:spss怎么导入excel数据 编辑:程序博客网 时间:2024/05/16 19:20
绿色为重要
一、前台请求参数@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属性,但是属性不完全,并且还有@SessionAttributesvalues=(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
- Springmvc(四)各种方法的汇总
- (总结)使用springmvc解决各种乱码问题的大汇总
- 各种跨域方法的实现汇总
- python各种删除空格的方法汇总
- 基于Lockset的数据竞争检测方法汇总(四)
- 排序各种方法汇总!
- 排序各种方法汇总!
- 各种排序方法汇总
- Silverlight中关于ComboBox的各种使用(基本上是汇总了往上的一些方法)
- ThinkPHP框架的各种大写字母(A\C\R\M\D\I、、、、)方法汇总
- asp.net中各种路径的获取方法汇总
- java读取文件的各种方法汇总笔记
- python各种删除空格符号的方法汇总
- javascript刷新父页面的各种方法汇总
- js之刷新父页面的各种方法汇总
- javascript刷新父页面的各种方法汇总
- SpringMvc学习心得(四)springmvc中request的线程安全问题
- springmvc(四)---springmvc的较验机制
- String.Join方法
- Swing JTable 自定义上下左右回车键盘事件
- 比较大小
- linux下mysql基本的操作
- 【Python】批量文件的编辑
- Springmvc(四)各种方法的汇总
- R语言︱文本挖掘套餐包之——XML+SnowballC+tm包
- CQUOJ C. 彩虹糖
- Scala进阶
- springmvc(五)集成阿里 druid数据库连接池和事务等配置,集成mybatis
- [Java]常用的内存区域
- 关于新手语言一些想法(本人也是小白)
- CQUOJ D. 会做题的兔兔
- s3c2440中断程序(烧录到NORFlash,运行在SDRAM中)