注意:
- 含有SpringMVC的jsp标签的jsp页面不要放到webRoot下。
- 引入头 <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 提示最后一个
- modelAttribute 很关键
- path为当前对象的属性
- list为选中值
- map key为值 value 为提示
- 文本框,密码框
- 单选
- 多选
- 下拉列表
ps:密码框有缓存的话会自动填写,没有的话是不会自动填写的。
jsp页面
<body>
<form:form action="/abc.do" method="post" modelAttribute="bqPojo">
<form:input path="name"/>
<form:password path="pwd"/>
<br>
<br>
<form:checkboxes items="${bqPojo.aihaoMap }" path="aihaoList"/>
<br>
<form:select path="banji">
<form:options items="${bqPojo.banjiMap }"/>
</form:select>
<br>
<form:radiobutton path="gender" value="男"/>男
<form:radiobutton path="gender" value="女"/>女
</form:form>
</body>
POVO 省略封装
public class BqPovo {
private String name;
private String pwd;
private String gender;
private String banji;
private List<String> aihaoList = new ArrayList<String>();
}
POJO
简单实例写死了,实际可以去数据库查找到然后赋值
public class BqPojo extends BqPovo{
private Map<String, String> aihaoMap = new LinkedHashMap<String, String>();
private Map<String, String> banjiMap = new LinkedHashMap<String, String>();
public BqPojo() {
super();
aihaoMap.put("chifan", "吃饭");
aihaoMap.put("shuijiao", "睡觉");
aihaoMap.put("dadoudou", "打豆豆");
banjiMap.put("1", "一班");
banjiMap.put("2", "二班");
banjiMap.put("3", "三班");
banjiMap.put("4", "四班");
}
}
Controller 注意modelAttribute 标签
package com.qyctest.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import com.qyctest.bean.BqPojo;
@Controller
public class BqController {
@RequestMapping("testBq")
public String testBq(@ModelAttribute BqPojo bqPojo) {
bqPojo.setName("强月城");
bqPojo.setPwd("123456");
bqPojo.setGender("男");
bqPojo.getAihaoList().add("chifan");
bqPojo.getAihaoList().add("shuijiao");
bqPojo.setBanji("2");
return "springMVCbq";
}
}