【SpringMVC】SpringMVC数据处理、视图解析器

一、SpringMVC下的数据处理

1.处理模型数据
如果跳转时需要带数据:V、M,则可以使用以下方式:

(1)数据放在了request作用域 
ModelAndView、ModelMap  、Map、Model   

@ModelAttribute

示例:
public String testModel(Model model|    Map<String,Object> m) {

m.put(x,".."); 就会将x对象 放入request域中


(2)如何将上述数据同时放入session中?@SessionAttributes(..)

 

2.更新数据

@ModelAttribute 
i.经常在 更新数据时使用
ii.在不改变原有代码的基础之上,插入一个新方法。&&通过@ModelAttribute修饰的方法 ,会在每次请求前先执行
并且该方法的参数map.put()可以将 对象 放入 即将查询的参数中;
必须满足的约定:
a.map.put(key,value) 其中的key必须是即将查询的方法参数的首字母小写;
testModelAttribute(Student xxx)  ,即student;
b.如果不一致,需要通过@ModelAttribute声明。如下:

    @ModelAttribute//在任何一次请求前,都会先执行@ModelAttribute修饰的方法
        public void queryStudentById(Map<String,Object> map) {
            //StuentService stuService = new StudentServiceImpl();
            //Student student = stuService.queryStudentById(31);
            //模拟调用三层查询数据库的操作
            Student student = new Student();
            student.setId(31);
            student.setName("zs");
            student.setAge(23);
            map.put("stu", student) ;//约定:map的key 就是方法参数 类型的首字母小写
        }

        //修改:Zs-ls
        @RequestMapping(value="testModelAttribute")
        public String testModelAttribute(@ModelAttribute("stu")Student student) {
            student.setName(student.getName());//将名字修改为ls
         System.out.println(student.getId()+","+student.getName()+","+student.getAge());
            return "success";
        }


3.一个Servlet 对应一个功能:
增删改查  对应于 4个Servlet


更新:    Servlet  - SpringMVC的Controller

查询
@ModelAttribute
public void query()
{

}

修改
public String update()
{

}

@ModelAttribute会在 该类的每个方法执行前 均被执行一次,因为使用时需要注意。

(慎用,但是由于一个功能对应一个servlet,还是可以考虑的)


二、视图、视图解析器

1.解析器接口组成

视图的顶级接口:View
视图解析器:ViewResolver

常见的视图和解析器:
InternalResourceView、InternalResourceViewResolver

public class JstlView extends InternalResourceView:

&&springMVC解析jsp时 会默认使用InternalResourceView, 
如果发现Jsp中包含了jstl语言相关的内容,则自动转为JstlView

JstlView 可以解析jstl\实现国际化操作

2.国际化实现

(1)概念:

国际化: 针对不同地区、不同国家 ,进行不同的显示 

 
中国:(大陆、香港)     欢迎
美国:                         welcome  

i18n_zh_CH.properties        
resource.welcome=你好
resource.exist=退出

i18n.properties    

        
(2)具体实现国际化步骤:
a.创建资源文件
基名_语言_地区.properties
基名_语言.properties

b.配置springmvc.xml,加载资源文件

    

<!-- 加载国际化资源文件 -->
    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="i18n"></property>
    </bean>


ResourceBundleMessageSource会在springmvc响应程序时 介入(解析国际化资源文件)

c.通过jstl使用国际化
    需要导入的包:jstl.jar  standar.jar
    
springmvc在启动时,会自动查找一个id="messageSource"的bean,如果有  则自动加载


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值