标签简介:
srpingmvc中的form标签只是restful风格的请求访问,使用这个form标签应该保证有数据的回传,也就是说,它一出来就要展示数据的。
使用方式
第一步:引入标签库:这里是再jsp中
<%@taglib uri="http://www.springframework.org/tags/form" prefix="fm"%>
第二步:创建一个对象(domain)和引用的对象类型
这里使用了lombok插件
同时注意:这里的性格在前端界面应该是一个单选选项,爱好是一个数组,宠物是一个对象类型的
用户(user)domain
@Data
public class User {
private String user_name;
private String user_age;
private Integer user_sex;
private String[] hobby;//爱好
private Pet pet;
}
宠物(pet)domain
@Data
public class Pet {
private Integer id;
private String name;
}
第三步:创建一个连接发送请求
<a href="${pageContext.request.contextPath}/testForm">springmvc表单测试</a>
第四步:创建一个controller接收并处理请求
@RequestMapping("/testForm")
public String test13(Model model){
//存放爱好的集合 这里我们注意一下,创建一个爱好的集合,存放可选的全部爱好
ArrayList<String> hobbylist = new ArrayList<>();
hobbylist.add("英雄联盟");
hobbylist.add("王者荣耀");
hobbylist.add("刀塔");
//存放宠物的集合 这个集合存放的是前端界面中可选的全部宠物
ArrayList<Pet> pets = new ArrayList<>();
Pet pet1 = new Pet();
pet1.setId(1);
pet1.setName("老虎");
Pet pet2 = new Pet();
pet2.setId(2);
pet2.setName("狮子");
Pet pet3 = new Pet();
pet3.setId(3);
pet3.setName("猎豹");
//将宠物添加到集合中
pets.add(pet1);
pets.add(pet2);
pets.add(pet3);
//创建对象并设置属性
User user = new User();
user.setUser_name("蒲胤臻");
user.setUser_age("23");
String[] hobby = new String[]{"英雄联盟","王者荣耀"};//这里的爱好是用户本来就拥有的爱好
user.setHobby(hobby);
user.setPet(pet2);//这里是用户本来就拥有的宠物
user.setUser_sex(0);//这里设置用户的性别
//将上面设置好的数据全部存放到model中的request域中
model.addAttribute("hobbylist",hobbylist);
model.addAttribute("pets",pets);
model.addAttribute("command",user);
return "resoult.jsp";
}
第五步:创建前端界面使用springmvc表单接收数据并回显数据
这里做一下解释:
- path:表示对象的那个属性
- label:表示要显示出来的信息
- items:表示他本来拥有的所有信息,然后你可以从这里面选择哪些,比如爱好,他就表示所有可选的爱好,就是我们提前设置的
- itemValue:表示选项的id值
- itemLabel:表示选项里展示出来的数据
<h3>表单展示</h3>
<fm:form action="/formdata" method="post">
姓名:<fm:input path="user_name"/> <br>
年龄:<fm:input path="user_age"/> <br>
性别:<fm:radiobutton path="user_sex" value="1" label="男"/>
<fm:radiobutton path="user_sex" value="0" label="女"/> <br>
爱好:<fm:checkboxes path="hobby" items="${hobbylist}"/> <br>
宠物:<fm:select path="pet.id" items="${pets}" itemValue="id" itemLabel="name"/> <br>
<input type="submit" value="提交">
</fm:form>