form表单—3种参数

共有三种形式

form表单中的元素的name属性值 和 后台对应方法中的参数名保持一致。
(1) 参数是基本类型, name属性值和参数名保持一致
(2)后台方法的参数是自定义实体类,如Person。name属性值和实体类的属性名保持一致
(3)后台方法的参数是自定义实体类,而且实体类的一个属性是另一个自定义实体类。name属性值和实体类的属性名的属性名保持一致。比如name=area.id

第1种:提交基本类型的参数到后台

form表单中的元素的name属性值 和 后台对应方法中的参数名保持一致
html代码

    <form id="editForm" action="app/edit/destination" method='POST'>
        <div>
            名称<input id="getName" name="param1" />
        </div>

        <div>
            id<input id="getAreaId" name="param2" />
        </div>       
        <input type="submit" value="提交" />
    </form>

java代码

@ResponseBody
@RequestMapping(value = "app/edit/destination", method = RequestMethod.POST)
public void editDestination(Long param1, String param2) {
    //处理参数
}

第2种:传递一个自定义实体类对象到后台,实体类的字段都是基本类型

新建实体类Class

public class Class {
    private int id;
    private String name;        
}

html代码

    <form id="editForm" action="app/edit/destination" method='POST'>
        <div>
            名称<input id="getName" name="id" />
        </div>

        <div>
            id<input id="getAreaId" name="name" />
        </div>       
        <input type="submit" value="提交" />
    </form>

java代码

@ResponseBody
@RequestMapping(value = "app/edit/destination", method = RequestMethod.POST)
public void editDestination(Class class) {
    //处理参数
}

第3种:传递一个自定义实体类对象到后台,实体类的某个字段是另一个自定义实体类

新建实体类Person,包含字段name,age,sex,myclass


public class Person {
    public String name; //(1)姓名
    private int age;//(2)年龄
    private int sex;
    private Class myclass; //(4)自定义实体类      
}

html代码

    <form id="editForm" action="app/edit/destination" method='POST'>
     <div>
        <input name="name" value="smx" />
    </div>
    <div>
        <input name="age" value="23" />
    </div>  
    <div>
        <select name="sex">
            <option value="0"></option>
            <option value="1"></option>
        </select>
    </div>

    <!--  -->
    <div>
        <input   name="myclass.name"   value="1年级"/>
    </div>
    <div>
        <input   name="myclass.id"   value="1"/>
    </div>
        <input type="submit" value="提交" />
    </form>

java代码

@ResponseBody
@RequestMapping(value = "app/edit/destination", method = RequestMethod.POST)
public void editDestination(Person person) {
    //处理参数
}

在ajax请求的控制器方法中,如果返回一个页面路径,不需要加@ResponseBody
否则,不管控制器方法有没有返回值,都要加@ResponseBody

posted on 2016-12-15 10:55  dreamstar  阅读(981)  评论(0编辑  收藏  举报