- 1.处理模型数据
如果跳转时需要带数据:V、M,则可以使用以下方式:
ModelAndView、ModelMap、Map、Model ——数据放在了request作用域
@SessionAttributes、@ModelAttribute
示例:
ModelMap、 ↓ 放入request作用域中↓
public String testModelMap(ModelMap modelMap) modelMap.put("student1", student);
Map、
public String testMap(Map<String, Object> map) map.put("student2", student);
Model
public String testModel(Model model) model.addAttribute("student3", student);
2.将数据放入session
@SessionAttributes
//@SessionAttributes("student3")//如果在request中存放student3对象,同时该对象也放入session域中
@SessionAttributes(types = {Student.class, Address.class})//如果在request中存放student类型对象,同时该类型的对象也放入session域中
3.
@ModelAttribute //在任何一次请求前,先执行ModelAttribute修饰的方法
1.经常在 更新时使用
2.在不改变原有的代码基础之上,插入一个新方法。
3.@ModelAttribute 会在每个方法执行前,均被执行一次,因为使用时需要注意。
map.put("student", student);
理解:1. key的值(student)去 匹配(参数的类型首字母小写)的值,
2. 匹配成功之后,自动把 值 传给 匹配到的参数(student1)
反向思维:key的首字母大写put(“student”xxxx)去匹配的参数类型(Student xxx)完成传参。
3.查询参数的值student 传入----public String testModelAttrribute(Student student)中。
/**
* 先查询张三信息
*/
@ModelAttribute//在任何一次请求前,先执行ModelAttribute修饰的方法
public void queryStudentById(Map<String, Object> map) {
Student student = new Student();
student.setId(31);
student.setName("张三");
student.setAge(31);
map.put("student", student);
}
/**
* 修改 Zs-ls
* 没有放入requst域,使用@SessionAttributes会报错,所以请先注释后再测试修改。??有疑问
*
* @param student
* @return
*/
@RequestMapping("/modelAttrribute")
public String testModelAttrribute(Student student1) {
student1.setName("李四");//将名字修改为李四
System.out.println(student.getId() + "\t" + student.getName() + "\t" + student.getAge());
return "/view/success";
}
也可以@ModelAttribute("student")匹配
public String testModelAttrribute(@ModelAttribute("student") Student student)
@ModelAttribute("student") student为map里面key值
- 2、视图、视图解析器
视图的顶级接口:View
视图解析器:ViewResolver
常见的视图解析器:
InternalResourceView、InternalResourceViewResolver
public class JstlView extends InternalResourceView :
1.mvc解析jsp时,默认使用父类InternalResourceView ,
2.如果解析中发现jstl语言自动转为JstlView
JstlView 可以解析jstl 实现国际化操作
- 国际化:针对不同地区,国家,进行不同显示
中国(大陆、香港) 欢迎
美国: welcome
具体实现国际化步骤:
a.创建资源文件
基名_语言_地区.properties
i18n_zh_CN.properties
(1)中国:package_zh_CN.properties
(2)台湾:package_zh_TW.properties
(3)香港:package_zh_HK.properties
(4)美国:package_en_US.properties
internationalization
i18n 百度搜
java -jdk-bin目录下
native2ascii.exe
CMD执行,转为asc码 阿斯克码
C:\Users\Lenovo>native2ascii.exe
你好
\u4f60\u597d
b.配置springMVC,加载资源文件