springMvc-05 mvc标签库
1、导入标签库
在Jsp页面的顶部位置导入
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--jstl--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%--标签库--%>
<%@ taglib prefix="f" uri="http://www.springframework.org/tags/form" %>
测试页面
测试输出
2、标签
2.1、form
渲染
标签自动绑定Model对象中的属性到 form 对应的实体对象,默认绑定的属性 key 名为command,在form内部的标签中可以通过path直接引入该对象内的属性。
提供除 GET 和 POST 的以外的 HTTP 请求,使用methodParam属性
常使用commandName来定制Model对象中的属性,若不明确指定,默认值是command
若Model中不存在指定属性,则抛出异常,信息为Neither BindingResult nor plain target object for bean name 'command' available as request attribute
2.2、input
2.3、password
2.4、hidden
2.5、textarea
2.6、checkbox和checkboxes
2.7、radiobutton和radiobuttons
2.8、select、option、options
2.9、errors
path="*"表示显示所有的错误信息
path="abc*"表示 显示abc 属性的错误信息
path="abc.att"表示 显示abc 对象的 att 属性的错误信息
3、例子演示
3.1、模型类
package rui.db.Model;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class User {
private String loginId;
private String userName;
private String telephone;
private String sex;
private String departmentId;
private List loves;
private String intro;
public String getLoginId() {
return loginId;
}
public void setLoginId(String loginId) {
this.loginId = loginId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getDepartmentId() {
return departmentId;
}
public void setDepartmentId(String departmentId) {
this.departmentId = departmentId;
}
public List getLoves() {
return loves;
}
public void setLoves(List loves) {
this.loves = loves;
}
public String getIntro() {
return intro;
}
public void setIntro(String intro) {
this.intro = intro;
}
}
3.2、辅助方法
package rui.tool;
import java.util.HashMap;
import java.util.Map;
public class listHelper {
public static Map getSex()
{
Map map = new HashMap();
map.put("F","男");
map.put("M","女");
return map;
}
public static Map getDept()
{
Map map = new HashMap();
map.put("D01","计算机");
map.put("D02","外语");
return map;
}
public static Map getLove()
{
Map map = new HashMap();
map.put("足球","足球");
map.put("篮球","篮球");
map.put("羽毛球","羽毛球");
return map;
}
}
3.3、控制器
package rui.web;
import jakarta.validation.Valid;
import org.springframework.boot.context.properties.bind.BindResult;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.Errors;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import rui.db.Model.User;
import javax.servlet.http.HttpServletResponse;
import javax.xml.transform.Source;
import java.util.Arrays;
import java.util.List;
/*测试控制器*/
@Controller
@RequestMapping(value = "/test")
public class TestController {
//用户信息请求
@RequestMapping(value = "register", method = RequestMethod.GET)
public String register(Model model) {
System.out.println("执行TestController==1");
User u = new User();
u.setLoginId("001");
u.setUserName("王");
u.setSex("F");
u.setTelephone("123456789");
u.setDepartmentId("D01");
u.setLoves(Arrays.asList("足球", "篮球"));
model.addAttribute("user", u);
model.addAttribute("sexList", rui.tool.listHelper.getSex());
model.addAttribute("deptList", rui.tool.listHelper.getSex());
model.addAttribute("loveList", rui.tool.listHelper.getLove());
return "/test/register";
}
//用户注册提交
@RequestMapping(value = "register", method = RequestMethod.POST)
public String register(Model model,User user) {
System.out.println("执行TestController==2");
model.addAttribute("user", user);
return "forward:/test/showInfo";
}
//用户信息显示
@RequestMapping(value = "showInfo")
public String showInfo() {
return "/test/showInfo";
}
}
3.4、视图
register.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--jstl--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%--标签库--%>
<%@ taglib prefix="f" uri="http://www.springframework.org/tags/form" %>
测试页面
测试输出123
用户账号:
用户名:
用户电话:
性别:
部门:
爱好:
showInfo.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--jstl--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%--标签库--%>
<%@ taglib prefix="f" uri="http://www.springframework.org/tags/form" %>
测试页面
测试输出123
用户账号:${user.loginId}
用户姓名:${user.userName}
用户性别:${user.sex}
3.5、运行效果