Spring MVC 之请求处理方法可接收参数(三)

请求处理方法可接收参数

今天学习了前三个方法。

 

1、作用域对象
2、单个表单提交数据
3、表单数据封装的Bean对象

首先创建一个实体对象。

 1 package com.cy.springannotation.entity;
 2 /**
 3  * 定义一个表单实体类
 4  * @author acer
 5  *
 6  */
 7 public class UserBean {
 8     //要求属性名必须要和表单的参数名一样的!
 9     private String username;
10     private String password;
11     public String getUsername() {
12         return username;
13     }
14     public void setUsername(String username) {
15         this.username = username;
16     }
17     public String getPassword() {
18         return password;
19     }
20     public void setPassword(String password) {
21         this.password = password;
22     }
23
24
25 }

 

简单的一个jsp页面!login.jsp

为了方便观察 password的type为text。

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11
12     <title>登录页面</title>
13
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22
23   </head>
24
25   <body>
26   <form action="login.do" method="post">
27     <table>
28        <tr>
29            <td>用户名:</td>
30            <td><input type="text" name="username"/></td>
31        </tr>
32        <tr>
33            <td>密码</td>
34            <td><input type="text" name="password"/></td>
35        </tr>
36        <tr>
37            <td colspan="2"> <input type="submit" value="提交"/> </td>
38        </tr>
39     </table>
40   </form>
41   </body>
42 </html>

 

 

LoginController.java
 1 package com.cy.springannotation.controller;
 2
 3 import javax.servlet.http.HttpServletRequest;
 4
 5 import org.apache.log4j.Logger;
 6 import org.springframework.stereotype.Controller;
 7 import org.springframework.web.bind.annotation.RequestMapping;
 8 import org.springframework.web.bind.annotation.RequestMethod;
 9 import org.springframework.web.bind.annotation.RequestParam;
10 import org.springframework.web.servlet.ModelAndView;
11
12 import com.cy.springannotation.entity.UserBean;
13
14 @Controller  // @Controller告知Spring容器这是一个控制器组件
15 public class LoginController {
16
17     private Logger log=Logger.getLogger(this.getClass());
18
19
20
21     /* @RequestMapping("/login.do")  // @RequestMapping告知该方法是针对/login.do请求的处理方法
22      public String login(String username){
23          System.out.println(username);
24         return "index";           // 返回的字符串被当做ViewName
25
26      }*/
27
28     /**
29      *
30      * 1 、作用域对象
31      * HttpServletRequest,HttpServletResponse,HttpSession
32      * 个数顺序可以自行定义
33      * @param request
34      * @return
35      */
36
37     /*@RequestMapping("/login.do")
38     public ModelAndView login(HttpServletRequest request){
39         String username=request.getParameter("username");
40         String password=request.getParameter("password");
41         log.info(username);
42         log.info(password);
43         ModelAndView  mav=new ModelAndView();
44         mav.setViewName("index");
45         return mav;
46
47     }*/
48
49     /**
50      * 2、单个表单提交数据
51      */
52
53     /*@RequestMapping("/login.do")
54     public String login(@RequestParam("username")String name,@RequestParam("password")String pwd){
55         log.info(name);
56         log.info(pwd);
57         return "index";
58     }*/
59
60
61
62
63
64     /**method主要是制定请求方法的规则,比如:如果设置了RequestMethod.POST,
65      * 那么你的表单提交就必须使用POST提交,否则将报405错误
66      params="password" 表示我的表单提交中,一定要有password这个参数,否则将报400的错误*/
67
68     /**
69      * 2、单个表单提交数据
70      */
71     /*@RequestMapping(value="/login.do",method=RequestMethod.POST,params="password")
72     //如果属性名与提交项名称相同,可以不配置@RequestParam
73     public ModelAndView login(String username,String password){
74         log.info(username);
75         log.info(password);
76         ModelAndView mv = new ModelAndView();
77         mv.setViewName("index");
78         return mv;
79     }*/
80
81
82     /**
83      * 3 表单数据封装的Bean对象
84      * @param user
85      * @return
86      */
87     @RequestMapping(value="/login.do")
88     public String login(UserBean user){
89         log.info(user.getUsername());
90         log.info(user.getPassword());
91         return "index";
92     }
93
94
95
96 }

 

 其他的配置都和前一篇是相同的。

 

 

4、Map对象
5、PrintWriter作为参数
6、Cookie中的数据作为参数
7、Http协议头的数据作为参数
8、从restful风格请求从获取数据

 

时间: 2024-08-01 12:56:48

Spring MVC 之请求处理方法可接收参数(三)的相关文章

spring mvc controller可以用Map接收jsp传来的值么???

问题描述 spring mvc controller可以用Map接收jsp传来的值么??? spring mvc controller可以用Map接收jsp传来的值么???jsp怎么写,controller又怎么写??请求大神指教 解决方案 实体类写了么 map也写成个对象 然后前台传值封装成对象试试 解决方案二: @RequestMapping(""/我是路径/我是方法"") public String 我是方法(String 我是参数 ModelMap map)

[Spring MVC]-详解SpringMVC的各种参数绑定方式_java

SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post"> <input name="count" value="10" t

Crunchify 有关 Spring MVC 的方方面面汇总 - 已更新第三步

Crunchify 有关 Spring MVC 的方方面面汇总 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 从 Crunchify 获得到一篇文章,终于搞定 Spring MVC 4.2.2

Spring中@Controller的方法中setViewName参数

setViewName()方法是ModelAndView类的方法,含义是设置View的名字(名字是String类),这个方法的参数有如下三种常见形式: @RequestMapping("/dologin") public ModelAndView dologin(HttpServletRequest request, User user) { User us1 = uss.getUserByName(user.getSrName()); ModelAndView mav = new M

Spring MVC 基础注解之@RequestMapping、@Controller、(二)

我现在学的是spring4.2 今天主要学习了Spring MVC注解  引入注解可以减少我们的代码量,优化我们的代码. @Controller:用于标识是处理器类: @RequestMapping:请求到处理器功能方法的映射规则: 还是以示例来解释说明   1 创建springAnnotation02项目,导入jar包.    这里的web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app x

spring mvc 数据绑定问题 提交表单提示HTTP status 400, The request sent by the client was syntactically incorrect

我们在spring mvc 中controller方法中的参数,spring mvc会自动为我们进行数据绑定. spring mvc 方法中不一定要全部都有 form表单提交的属性, 也可以有 请求属性中 没有的参数(这时候只会把对应不上的参数设为null),这两种情况都不会报错. 但是有几种情况会报错,可能会提示HTTP status 400,  The request sent by the client was syntactically incorrect,而且此时如果加断点你会发现根本

Spring MVC url提交参数和获取参数

普通URL提交参数 该格式url为:url.do?param1=mahc&param2=8888.00 需要在上文中的HelloController对象添加方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 /**      * Spring MVC URL提交参数      * @param name      * @return      */     @RequestMapping(/param)     public ModelAndView getInfo(@Request

利用 FormData 对象和 Spring MVC 配合实现Ajax文件下载功能

Ajax文件下载 利用 FormData 对象和 Spring MVC 配合可以实现Ajax文件上载功能: 步骤 1.导入组件并准备静态脚本 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dependency> &l

spring mvc

作者:赵磊 博客:http://elf8848.iteye.com   目录 一.前言 二.spring mvc 核心类与接口 三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 六.springMVC-mvc.xml 配置文件片段讲解 七.spring mvc 如何访问到静态的文件,如jpg,js,css 八.spring mvc 请求如何映射到具体的Action中的方法 九.spring mvc