测试springMVC标签
<!--
mvc表单标签一定要写在mvc:form标签中,并且在mvc:form中要指定modelAttribute属性
该属性的值来自于controller中ModelMap传递的对象
modelAttribute表示获取controller中modelMap所保存的key名
mvc标签的path属性就等同于基本表单标签的name属性
注意:mvc标签要写在mvc表单中
-->
@Controller
@RequestMapping("/testController1")
public class TestController1 {
@RequestMapping("/show")
public String show(ModelMap model,HttpServletRequest request) {
Users user = new Users();
user.setUid(1); //设置默认值
//user.setUname("c");
// 要保存到ModelMap中
model.addAttribute("user", user);
return "/show1.jsp";
}
}
<mvc:form action="save" modelAttribute="user" method="post">
用户ID: <mvc:input path="uid" readonly="true"/><br/>
用户名: <mvc:input path="uname" /><br/><br/>
<input type="submit" value="保存"/>
</mvc:form>
<!-- 测试几种数据类型
a. List基本类型
b. Map类型
c. List对象类型
d. 数组类型
-->
复选框和单选按钮
<h3>绑定的是基本类型的List集合,显示和隐藏都是同一个值</h3>
爱好:<mvc:checkboxes items="${likes }" path="hobby"/>
<mvc:radiobuttons items="${likes}" path="hobby"/><br/><br>
<h3>绑定的是map集合,map的键为隐藏值,map的值为显示值</h3>
爱好:<mvc:checkboxes items="${likesMap }" path="hobby"/>
<mvc:radiobuttons items="${likesMap}" path="hobby"/><br/><br>
<h3>绑定的是实体类型list集合,需要通过itemLabel/itemValue来指定显示值/隐藏值</h3>
<h3>注意: itemValue和itemLabel必须是绑定的实体类型的属性名</h3>
城市:<mvc:checkboxes items="${cityList }" path="area" itemValue="cid" itemLabel="cname"/>
<mvc:radiobuttons items="${cityList}" path="area" itemValue="cid"itemLabel="cname"/><br/><br>
下拉列表
mvc:select上面写items属性和mvc:options上面写items属性的区别:
mvc:select只能写一个items
mvc:options虽然也只能写一个items,但可以有多个mvc:options选项
并且还可以在mvc:select中添加mvc:option以及普通的option选项,
但普通option选项没有自动选中功能
<h4>List绑定在mvc:options上,可以绑定多个</h4>
<mvc:select path="area">
<mvc:option value="aa">我是新增的</mvc:option>
<mvc:options items="${cityList }" itemLabel="cname" itemValue="cid"/>
<mvc:options items="${likes }"/>
<option>input的option</option>
</mvc:select>
<h3>如果mvc:select的path属性指定为一个数组/集合,那么该下拉列表将变为一个多选下拉列表</h3>
<mvc:select path="hobby">
<mvc:options items="${likes }"/>
</mvc:select>