Struts学习总结(一)——后台接收表单数据与映射

1.1.1新建一个Maven项目,添加Web构面与struts2构面

新建好的目录如下:

1.1.2 编写pom文件,添加Maven依赖

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.nf</groupId>
    <artifactId>struts01</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <properties>
        <!-- 设置整个maven项目的编码格式 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- 设置控制台输出参数的编码格式, 解决乱码  -->
        <orgLine>-Dfile.encoding=UTF-8</orgLine>
    </properties>

    <build>
        <plugins>
            <!-- 配置maven编译插件,指定maven编译版本 -->
            <plugin>
                <!-- 插件名称 -->
                <artifactId>maven-compiler-plugin</artifactId>
                <!-- 插件配置信息 -->
                <configuration>
                    <target>1.8</target>
                    <source>1.8</source>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <!-- 插件名称 -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <warSourceDirectory>web</warSourceDirectory>
                    <webXml>web\WEB-INF\web.xml</webXml>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <!-- 添加Struts依赖 -->
    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.5.8</version>
        </dependency>
    </dependencies>

</project>

 运行效果:

1.1.3在resources 中编写struts.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">

<struts>
    <package name="pkg" extends="struts-default" strict-method-invocation="false">
        <action name="user*" class="org.action.user.UserAction2" method="{1}">
            <!-- 转发到index页面 默认就是转发  {1}表示匹配第一个*号-->
            <result>/index.jsp</result>
        </action>
    </package>
</struts>

 

 1.1.4编写Users类

package org.action.entity;
public class Users {

    //映射表单参数(属性名和表单的name属性一致)
    private String userName;
    private String password;
    private int age;
    //数组用于接收表单中name属性名相同的内容
    private String[] addr;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String[] getAddr() {
        return addr;
    }

    public void setAddr(String[] addr) {
        this.addr = addr;
    }
}

 

  1.1.5编写字符编码过滤器Encoding

package org.action.filter;

import javax.servlet.*;
import java.io.IOException;

public class EncodingFilter implements Filter{

    String encoder = null;

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("init EncodingFilter...");
        encoder = filterConfig.getInitParameter("encoder");
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
        request.setCharacterEncoding(encoder);
        response.setCharacterEncoding(encoder);
        //放行请求
        filterChain.doFilter(request, response);
    }

    @Override
    public void destroy() {

    }
}

 

  1.1.6编写UserAction类

package org.action.user;

/**
 * Created by Administrator on 2017/1/3.
 */
public class UserAction {
    private String userName;
    private String password;
    private int age;
    private String[] addr;


    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String[] getAddr() {
        return addr;
    }

    public void setAddr(String[] addr) {
        this.addr = addr;
    }

    public String login(){
        System.out.println(userName);
        System.out.println(password);
        System.out.println(age);
        for (String s : addr) {
            System.out.println(s);
        }
        return "success";
    }

}

 

1.1.7编写UserAction2类

package org.action.user;


import org.action.entity.Users;

public class UserAction2 {
    private Users user;

    public Users getUser() {
        return user;
    }

    public void setUser(Users user) {
        this.user = user;
    }

    public String login(){
        System.out.println(user.getUserName());
        System.out.println(user.getPassword());
        System.out.println(user.getAge());
        for (String s : user.getAddr()) {
            System.out.println(s);
        }
        return "success";
    }

}

 

1.2.1 login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
    <form method="post" action="userlogin">
        UserName:<input type="text" name="user.userName"/><br/>
        Password:<input type="password" name="user.password"/><br/>
        Age:<input tyep="text" name="user.age"/><br/>
        Addr1:<input type="text" name="user.addr"/><br/>
        Addr2:<input type="text" name="user.addr"/><br/>
        <input type="submit" value="submit"/>
    </form>
</body>
</html>

 

1.2.2 index.jsp

 
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
success...........
</body>
</html>

 

1.2.3运行效果:

 

posted @ 2017-01-03 20:49  指间流逝的夏末  阅读(614)  评论(0)    收藏  举报