博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring MVC的简单用法
阅读量:5876 次
发布时间:2019-06-19

本文共 4207 字,大约阅读时间需要 14 分钟。

一、Multiaction Controller

package cn.framelife.mvc.control;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;import cn.framelife.mvc.entity.User;@Controller@RequestMapping("/user")public class UserControl {
/** * 这个方法接收/user/create.abc请求 */ @RequestMapping("create") public ModelAndView createUser(User user){ System.out.println("createUser"); ModelAndView view = new ModelAndView(); view.setViewName("/success"); return view; } /** * 这个方法接收/user/update.abc请求 */ @RequestMapping("update") public ModelAndView update(){ System.out.println("updateUser"); ModelAndView view = new ModelAndView(); view.setViewName("/success"); return view; }}

二、 ModelAndView

Controller处理方法的返回值为ModelAndView,既包含视图信息,也包含模型数据信息。

1、ModelAndView中的方法

可以使用以下方法添加模型数据:

addObject(Object modelObject)    addObject(String modelName, Object modelObject)    addAllObjects(Map modelMap)

可以通过以下方法设置视图:

setViewName(String viewName)     setView(View view)

2、重定向:

这里的重定向只能重定向到其它的处理方法,不能重定向到页面。如果想重定向到页面,那么在另外的的处理方法中跳转就是。

@RequestMapping(value="/add",method = RequestMethod.GET)    public ModelAndView initForm(){        User user = new User();        return new ModelAndView("/add").addObject(user);     }    @RequestMapping("create")    public ModelAndView createUser(){        ModelAndView view = new ModelAndView();        //这里会重定向到add.abc的处理方法中,再由add.abc的处理方法作页面跳转        RedirectView redirectView = new RedirectView("add.abc");        view.setView(redirectView);        return view;    }

三、Controler处理方法获取值

1、获取页面值

页面Form表单:

用户名:
密 码:
其它:

A、 绑定到同名参数中

/*    * @RequestParam可以用来提取名为“username”的String类型的参数,并将之作为输入参数传入    */    @RequestMapping("create")    public ModelAndView createUser(@RequestParam("username") String username,String password,String other){        System.out.println(username+"-"+password+"-"+other);        ModelAndView view = new ModelAndView();        view.setViewName("/success");        return view;}

B、 绑定到实体类模型数据中

User实体类:

public class User implements java.io.Serializable {
private Integer id; private String username; private String password; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}

Controller中的方法:

@RequestMapping("create")    public ModelAndView createUser(User user){        System.out.println(user.getUsername()+"-"+user.getPassword());        ModelAndView view = new ModelAndView();        view.setViewName("/success");        return view;    }

C、既有模型又有同名参数

/**     * 页面表单值传输时,如果User类中有同名的属性,那就绑定到User对象中     * 如果User类中没有的属性,可以使用同名参数接收     * 如果User类中也有,而我们又有同名参数,两个都可以接收     */    @RequestMapping("create")    public ModelAndView createUser(User user,String username,String other){        System.out.println(user.getUsername()+"-"+user.getPassword()+"-"+username+"-"+other);        ModelAndView view = new ModelAndView();        view.setViewName("/success");        return view;    }

2、获取Servlet API

Controller中的处理方法:

@RequestMapping("create")    public ModelAndView createUser(HttpServletRequest request,HttpServletResponse response,HttpSession session){        String username = request.getParameter("username");        System.out.println(username);        request.setAttribute("requestName", "aaaaaaaaaaaa");        session.setAttribute("sessionName", "bbbbbbbbbbbb");        Cookie cookie = new Cookie("cookieName", "ccccccccccc");        response.addCookie(cookie);        ModelAndView view = new ModelAndView();        view.setViewName("/success");        return view;    }

Success.jsp页面显示:

    ${requestName}
${sessionName}
${cookie.cookieName.value}

转载地址:http://hnuix.baihongyu.com/

你可能感兴趣的文章
PHP - 如何打印函数调用树
查看>>
js闭包
查看>>
寒假。3.3.G - Common Child (最大公共子序)
查看>>
设计模式学习笔记--原型模式
查看>>
.Net 通过MySQLDriverCS操作MySQL
查看>>
JS Cookie
查看>>
ubuntu Unable to locate package sysv-rc-conf
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
【吉光片羽】短信验证
查看>>
MacBook如何用Parallels Desktop安装windows7/8
查看>>
gitlab 完整部署实例
查看>>
GNS关于IPS&ASA&PIX&Junos的配置
查看>>
七天学会ASP.NET MVC (四)——用户授权认证问题
查看>>
upgrade to iOS7,how to remove stroyboard?
查看>>
影响企业信息化成败的几点因素
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
zabbix监控部署
查看>>
struts中的xwork源码下载地址
查看>>
Android硬件抽象层(HAL)深入剖析(二)
查看>>