Fork me on GitHub

springmvc中的数据传递

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class Params {

    public Params() {
        System.out.println("costructor....");
    }

    /*
     * 方式1:通过注入httpServletRequest进行参数设置,并跟随返回的视图传递到页面
     */
    @RequestMapping("/ppp1")
    public String param(HttpServletRequest req) {
        req.setAttribute("msg", "you");
        return "/WEB-INF/hello.jsp";
    }

    /*
     * 方式2:通过原始的modelAndView设置模型数据和视图名称,,并返回
     */
    @RequestMapping("/ppp2")
    public ModelAndView param2() {
        ModelAndView mav = new ModelAndView();
        User user = new User();
        user.setName("俩后");
        mav.addObject("user", user);
        mav.setViewName("/WEB-INF/hello.jsp");
        mav.addObject("msg", "ck");
        return mav;
    }

    /*
     * 方式3:通过向方法注入形参Model类的对象,该对象由spring自动功能创建添加,model对象添加模型数据
     * 而返回的字符串负责指向要跳转的视图名称
     */
    @RequestMapping("/ppp3")
    public String param3(Model model) {
        User user = new User();
        user.setName("俩后的");
        model.addAttribute("user", user);
        model.addAttribute("msg", "ck");
        return "/WEB-INF/hello.jsp";
    }
    /*
     * 方式4:直接将返回值作为模型对象返回
     * 此时,视图名就是该方法的访问地址,即/ppp4,
     */
    @RequestMapping("/ppp4")
    public User param4() {
        User user = new User();
        user.setName("俩后的");
        return user;
    }
}

上面四种方式都是将数据放在request作用域中的,通过${requestScope.xxx}可以取出数据

posted @ 2016-07-22 21:42  gouermazi  阅读(948)  评论(0编辑  收藏  举报