spring MVC 接受表单参数常用的五种方法

来源:互联网 发布:澳洲硕士知乎 编辑:程序博客网 时间:2024/05/18 15:25
本人博客已移至: www.andyqian.com     此处不再更新.........


在spring MVC中接收表单参数非常方便,与struts2 不同的是,spring MVC接受参数可以直接将接受的参数作为
方法的参数,如下所代码所示:
--controller 代码
/**
     * (第一种方法接收参数)
     * 保存用户信息
     * @param user
     * @return
     */
    @RequestMapping(value="/saveUser",method=RequestMethod.POST)
    public ModelAndView saveUser(UserModel user) {
        StringBuilder sb = new StringBuilder();
        sb.append("用户名:"+user.getUsername());
        sb.append("邮箱:"+user.getEmail());
        sb.append("年龄:"+user.getAge());
        String content = sb.toString();
        return new ModelAndView("/wecome","result",content);
    }
    
    /**
     * 第二种方法接收表单参数
     * @param request
     * @return
     */
    @RequestMapping(value="twoSaveUser",method=RequestMethod.POST)
    public ModelAndView twoSaveUser(HttpServletRequest request){
        StringBuilder builder = new StringBuilder("通过servlet获取到的参数/n");
        String username = request.getParameter("username");
        String age = request.getParameter("age");
        String email = request.getParameter("email");
        builder.append("用户名: "+username+"\n");
        builder.append("年龄: "+age+"\n");
        builder.append("邮箱: "+email+"\n");
        String content = builder.toString();
        return new ModelAndView("/wecome","result",content);
    }
    
    /**
     * 第三种方法保存用户信息
     * @param username    待保存的用户名
     * @param email        email
     * @param age        年龄
     * @return
     */
    @RequestMapping(value="threeSaveUser",method=RequestMethod.POST)
    public ModelAndView threeSaveUser(String username,String email,int age){
        StringBuilder sb = new StringBuilder();
        sb.append("用户名:--->"+username);
        sb.append("邮箱:----->"+email);
        sb.append("年龄------>"+age);
        String content = sb.toString();
        return new ModelAndView("/wecome","result",content);
    }
   /**
     * 第四种保存用户的方法
     * @param user
     * @return
     */
    @RequestMapping(value="fourSaveUser",method=RequestMethod.POST)
    public ModelAndView fourSaveUser(HttpServletRequest request,UserModel user){
        StringBuilder sb = new StringBuilder("第四种方法\n");
        sb.append("用户名:---->"+user.getUsername()+"\n");
        sb.append("邮箱:---->"+user.getEmail()+"\n");
        sb.append("年龄:---->"+user.getAge()+"\n");
        String content = sb.toString();
        String localhost = request.getRemoteAddr();
        System.out.println("localhost-->"+localhost);
        return new ModelAndView("/wecome","result",content);
    }
    /**
     * 第五种 保存用户信息的方法
     */
    @RequestMapping(value="fiveSaveUser",method=RequestMethod.POST)
    public ModelAndView fourSaveUser(HttpServletRequest request,HttpServletResponse respose,UserModel user){
        StringBuilder sb = new StringBuilder("第五种方法\n");
        sb.append("用户名:---->"+user.getUsername()+"\n");
        sb.append("邮箱:---->"+user.getEmail()+"\n");
        sb.append("年龄:---->"+user.getAge()+"\n");
        String content = sb.toString();
        String localhost = request.getRemoteAddr();
        System.out.println("localhost-->"+localhost);
        return new ModelAndView("/wecome","result",content);
    }

--注意事项: 
    在接收表单参数时的可以根据需要在参数中添加,HttpServletRequest,HttpServletResponse 参数,获取获取请求参数,也可以在参数中添加 model 实体对象, 个人建议使用 一般情况下使用第一种方法,特殊情况可根据自己的需求来定制参数个数以及需要的参数

--表单提交jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>表单提交测试页面</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
  </head>
  <body>
          <form action="http://localhost/IntentWash/user/saveUser" method="post">
              用户名:<input type="text" name="username"><br/>
              邮箱:<input type="text" name="email"/><br/>
                   年龄: <input type="text" name="age"/><br/>
                  <input type="submit" value="提交"> 
          </form>
          <hr/>
          <form action="http://localhost/IntentWash/user/twoSaveUser" method="post">
              用户名:<input type="text" name="username"><br/>
              邮箱:<input type="text" name="email"/><br/>
                   年龄: <input type="text" name="age"/><br/>
                  <input type="submit" value="提交"> 
          </form>
          <hr/>
          <form action="http://localhost/IntentWash/user/threeSaveUser" method="post">
              用户名:<input type="text" name="username"><br/>
              邮箱:<input type="text" name="email"/><br/>
                   年龄: <input type="text" name="age"/><br/>
                  <input type="submit" value="提交"> 
          </form>
  </body>
</html>

注意事项:
个人建议使用第一种方法: 使用pojo传递 (也就是bean) 这种的方法的可扩展性高,可维护性强,
也可以根据不同的应用场景来决定方法中的参数,以满足业务需要!
1 0
原创粉丝点击