springmvc学习(二)


 

在第一章中为了练手创建一个基本的springmvc 例子,这章主要记录 spring mvc中如何 接受前端发送过来的请求,前端发送请求数据类型(基本数据类型int,sring 等。对象类型:例如修改一个user的信息 。以及包装的对象类型)一下分别介绍这三种类型是如何传递 接受的。

  1. 接受基本数据类型:int
    搭建好一个基本springmvc的项目 配置 可以看我springmvc(一)
    创建一个SpringMvcTransmitInt类,并且创建一个 transmitInt(int age)方法 如图:|

    从浏览器中如何地址:http://localhost:8080/springmvc/transmitInt.action?age=2

    注意:方法transmitInt(int age)  参数名 age必须和请求中的参数 相同 如果 不相同 则请求的时候报错:

    绑定基本类型时候 如果要实现 请求参数和 方法参数 名 不相同 则 可以使用: @RequestParam 处理入参参数 和方法参数名字不一样的时候,value:请求的入参参入名(此处是age)required 是否为必填 ,defaultValue 默认值 如果请求中不带参数 则 默认值就是1

  2.  绑定 入参是pojo类型的数据

    /**
         * 绑定对象
         * 
         * @param user
         * @return
         */
        @RequestMapping("transmitPoJo")
        public ModelAndView transmitPoJo(User user) {
            ModelAndView mav = new ModelAndView();
            mav.setViewName("transmitpackagepojo");
            return mav;
        }
    <body>
    	<span>${ msg }</span>
    	<!-- 上传图片是需要指定属性 enctype="multipart/form-data" -->
    	<!-- <form id="itemForm" action="" method="post" enctype="multipart/form-data"> -->
    	<form id="itemForm"
    		action="${pageContext.request.contextPath }/transmitPoJo.action"
    		enctype="multipart/form-data" method="pos">
    		<table width="100%" border=1>
    			<tr>
    				<td>姓名</td>
    				<td><input type="text" name="name" value="${user.name}" /></td>
    			</tr>
    			<tr>
    				<td>岁数</td>
    				<td><input type="text" name="age" value="${user.age}" /></td>
    			</tr>
    
    
    			<tr>
    				<td colspan="2" align="center"><input type="submit" value="提交" />
    				</td>
    			</tr>
    		</table>
    
    	</form>
    </body>
    

       

    public class User {
        public String name;
        public int age;
        public Address address;
    
        public User() {
        }
    
        public User(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public Address getAddress() {
            return address;
        }
    
        public void setAddress(Address address) {
            this.address = address;
        }
    
        @Override
        public String toString() {
            return "User [name=" + name + ", age=" + age + ", address=" + address + "]";
        }
    
    }

    注意:传递对象的时候  jsp中的name需要和user中的属性 相同




  3. 绑定 入参是包装类型的对象
    <body>
        <span>${ msg }</span>
        <!-- 上传图片是需要指定属性 enctype="multipart/form-data" -->
        <!-- <form id="itemForm" action="" method="post" enctype="multipart/form-data"> -->
        <form id="itemForm"
            action="${pageContext.request.contextPath }/transmitPoJoList.action"
            enctype="multipart/form-data" method="pos">
            <table width="100%" border=1>
                <tr>
                    <td>姓名</td>
                    <td><input type="text" name="name" value="${user.name}" /></td>
                </tr>
                <tr>
                    <td>岁数</td>
                    <td><input type="text" name="age" value="${user.age}" /></td>
                </tr>
                <tr>
                    <td>用户省份</td>
                    <td><input type="text" name="address.province" value="${address.province}" /></td>
                </tr>
    
                <tr>
                    <td>用户城市</td>
                    <td><input type="text" name="address.city" value="${address.city}" /></td>
                </tr>
                <tr>
                    <td colspan="2" align="center"><input type="submit" value="提交" />
                    </td>
                </tr>
            </table>
    
        </form>
    </body>


    jsp中的name必须和User里面的address 的属性名相同 用 .

  4. 此外 springmvc 传递 数据 还有 数组类型 和 集合类型。感兴趣的朋友 可以自己去试试。以上内容如果哪里有说的不对 或者 理解错误的 希望多包涵,帮忙指正
原文地址:https://www.cnblogs.com/920913cheng/p/10149393.html