1. 程式人生 > >總結了一些SpringMVC的一些重點知識,簡單易懂02

總結了一些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.在不改變原有的程式碼基礎之上,插入一個新方法。

[email protected]    會在每個方法執行前,均被執行一次,因為使用時需要注意。


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,載入資原始檔