SpringMVC的表单组件、国际化

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>

表单标签库的使用

1.JSP页面表单标签库的导入

<%@ 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>

渲染的是一组checkBox标签

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";
    }
}

相关文章

SpringMVC1.MVC架构MVC是模型(Model)、视图(View)、控制...
SpringMVC学习笔记1.SpringMVC应用1.1SpringMVC简介​Spring...
11.1数据回显基本用法数据回显就是当用户数据提交失败时,自...
一、SpringMVC简介1、SpringMVC中重要组件DispatcherServlet...
1.它们主要负责的模块Spring主要应用于业务逻辑层。SpringMV...
3.注解开发Springmvc1.使用注解开发要注意开启注解支持,2.注...