spring mvc 的表单标签库
1.Student实体类
package com.southwind.POJO;
import lombok.Data;
@Data
public class Student {
private Integer id;
private String name;
private Integer age;
private String gender;
}
2.Handler
package com.southwind.controller;
import com.southwind.POJO.Student;
import com.sun.org.apache.xpath.internal.operations.Mod;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@RequestMapping("/student")
public class StudenController {
@GetMapping("/get")
public String get(Model model){
Student student =new Student();
student.setId(1);
student.setAge(18);
student.setName("张三");
student.setGender("男");
model.addAttribute("student",student);
return "student";
}
}
3.JSP
<%--
Created by IntelliJ IDEA.
User: 郝泾钊
Date: 2022-04-07
Time: 20:53
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>学生编号</h1>
<form action="" method="post">
学生编号:<input type="text" value="${student.id}" readonly><br>
学生姓名:<input type="text" value="${student.name}"><br>
学生年龄;<input type="text" value="${student.age}"><br>
学生性别:<input type="text" value="${student.gender}"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
表单标签库的使用
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
2.将form表单的业务数据进行绑定,通过modelattribute属性完成绑定,将modelattribute的值设置位控制器象model对象存值是的name即可。
<%--@elvariable id="student" type="com.southwind.POJO.Student"--%>
<form:form modelattribute="student" action="/student/update" method="post">
学生编号:<form:input path="id"></form:input><br>
学生姓名:<form:input path="name"></form:input><br>
学生年龄;<form:input path="age"></form:input><br>
学生性别:<form:input path="gender"></form:input><br>
<input type="submit" value="提交">
</form:form>
常用标签的使用
1.from:
<form:form modelattribute="student" action="/student/update" method="post">
</form:form>
渲染的是HTML的from标签,通过modelattribute属性绑定业务数据。
2.input:
<form:input path="name"></form:input><br>
渲染的是HTML的input标签,type="text" 绑定的是业务数据中的属性值,与path的业务属性值一样。支持级联
3.password:
<form:password path="age"></form:password><br>
渲染的是HTML的password标签,type="text" 绑定的是业务数据中的属性值,与path的业务属性值一样。但是不会在页面现实
4.checkBox:
<form:checkBox path="hobby" value="读书">
</form:checkBox>
渲染的是HTML的checkBox标签,type="text" 绑定的是业务数据中的属性值,与path的业务属性值一样。
有Boolean,数组,集合
-
boolean 为true选中 false为不选中。
student.setFlag(true)check:<form:checkBox path="flag" value="读书"> </form:checkBox>
-
数组,集合如果和集合中的元素和checkBox相同就选中
5.checkBoxs:
<form:checkBoxes path="name" items="${student.hobby}"></form:checkBoxes>
item绑定别遍历的数组,path表述选中的数组
student.setHobby(Array.asList("读书","鞋子"))
path可以直接写属性名,item则要通过EL表达式从作用域对象中取值,不能直接写属性名。
6.radiobuttion
<form:radiobutton path="name" value="0"></form:radiobutton>
渲染的是一个HTML中的一个单选按钮,值相同为选中状态,值不同为不状态。
7.radiobuttion
<form:radiobuttons path="name" items="${student.name}"></form:radiobuttons>
渲染的是html中的一组单选按钮标签
item绑定别遍历的数组,path表述选中的数组
8.select
<form:select path="name" items="${student.name}"></form:select>
渲染的是html中的一组选择标签
item绑定别遍历的数组,path表述选中的数组
9.from:select结合form:optations使用
from:select只定义path form:optations写 items
10.from:select结合form:optation使用
from:select只定义path form:optation写 value
path与哪个valu相等,则默认选择
Springmvc 国际化
1.spring.mvc
<!-- 国计化资源文件-->
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<!-- 多语言配置文件放在根路径 以langua开头-->
<property name="basename" value="classpath:language"></property>
<property name="useCodeAsDefaultMessage" value="true"></property>
</bean>
<!-- 拦截器-->
<mvc:interceptors>
<bean id="localeChangeInterceotor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="Lang"></property>
</bean>
</mvc:interceptors>
<!-- 配置SessionResolver,动态获取local对象存入Session-->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"></bean>
2.创建国际化资源文件:
language_en_US.properties
language.cn=\u4E2D\u6587
language.en=English
info=login
userbane=username
password=password
repassword=repassword
tel=tel
email=email
submit=submit
reset=reset
language_en_US.properties
language.cn=\u4E2D\u6587
language.en=English
info=\u767B\u5F55
userbane=\u7528\u6237\u540D
password=\u5BC6\u7801
repassword=\u786E\u8BA4\u5BC6\u7801
tel=\u7535\u8BDD
email=\u7535\u5B50\u90AE\u7BB1
submit=\u63D0\u4EA4
reset=\u91CD\u7F6E
业务页面:
package com.southwind.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/inter")
public class InterHandler {
@GetMapping("/index")
public String index(){
return "inter";
}
}