總結了一些SpringMVC的一些重點知識,簡單易懂02
- 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.在不改變原有的程式碼基礎之上,插入一個新方法。
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,載入資原始檔