SpringMVC entry --day02: Request parameter binding entity type filter solution Chinese distortion, the package collection properties

Codes on an undertaking.

1. For simplicity the code introduced in the pom dependent lombok

    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.8</version>
    </dependency>

2. Create entity class User (under the domain directory)

@Data
public class User implements Serializable {
    private String uname;
    private Integer age;
}

Because lombok dependent sake, here @Data can help us to automatically add the get, set, and toString methods.

3. Add the User Account attribute

@Data
public class Account implements Serializable {
    private String username;
    private String password;
    private String money;

    private User user;
}

4. Configuration param.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Param</title>
</head>
<body>
    <%--<a href="param/testParam?username=hehe&password=123">请求参数绑定</a>--%>

    <form action="param/saveAccount" method="post">
        姓名:<input type="text" name="username"/><br/>
        密码:<input type="text" name="password"><br/>
        金额:<input type="text" name="money"><br/>
        <input type="text" name="user.uname"><br/>
        <input type="text" name="user.age"><br/>
        <input type="submit" value="提交">
    </form>
</body>
</html>

The solution Chinese distortion filter configured in web.xml

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>

    <!--配置前端控制器-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <!--让DispatcherServlet加载路径classpath下的springmvc.xml配置文件-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>

        <!--DispatcherServlet类默认是第一次发请求的时候创建-->
        <!--配置load-on使在启动服务器时就开始创建DispatcherServlet
        它被创建后就可以加载springmvc配置文件了-->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>  <!--'/'表示发任何的请求都会经过servlet-->
    </servlet-mapping>

    <!--配置解决中文乱码的过滤器-->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

6. The package set of entity class attributes

Add a collection of properties in the Account.java

@Data
public class Account implements Serializable {
    private String username;
    private String password;
    private String money;

//    private User user;

    private List<User> list;
    private Map<String, User> map;
}

param.jsp:

    <%--把数据封装到Account类中,类中存在list和map的集合--%>
    <form action="param/saveAccount" method="post">
        姓名:<input type="text" name="username"/><br/>
        密码:<input type="text" name="password"><br/>
        金额:<input type="text" name="money"><br/>

        用户姓名:<input type="text" name="list[0].uname"><br/>
        用户年龄:<input type="text" name="list[0].age"><br/>

        用户姓名:<input type="text" name="map['one'].uname"><br/>
        用户年龄:<input type="text" name="map['one'].age"><br/>
        <input type="submit" value="提交">
    </form>

Guess you like

Origin blog.csdn.net/dl674756321/article/details/90726451