运行环境:window+jdk1.8+tomcat8.5
项目目录:
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>struct</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>input.jsp</welcome-file>
</welcome-file-list>
</web-app>
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="default" namespace="/" extends="struts-default">
<action name="user" class="com.struct2.UserAction" >
<result name="success">/login.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
创建输入视图:input.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户信息采集</title>
</head>
<body>
<h1 style="text-align:center;color:#43342A;font-family:Arial;font-weight:lighter;margin:0px;font-size:25px;">Login</h1>
<form method="post" action="user.action">
<input style="border-radius: 2px;width:100%;height:25px;margin-top:1px;color:#AFACA7;border:1px solid #E1E1E1;"
type="text" name="userName" value="UserName"/><br/>
<input style="border-radius: 2px;width:100%;height:25px;margin-top:15px;color:#AFACA7;border:1px solid #E1E1E1;"
type="text" name="userPassword" value="Password"/><br/>
<input type="checkbox" name="user" value="remember"/><span style="color:#787975;">Remember me</span><br/>
<input style="width:100%;height:35px;margin-top:5px;background-color:#337BB6;color:#FFFFFF"
type="submit" value="Sign in" />
</form>
</body>
</html>
创建业务控制器
package com.struct2;
public class UserAction {
private String userName;
private String userPassword;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public String execute() throws Exception{
if(userName.length()>0 && userPassword.length()>3) {
return "success";
}else {
return "error";
}
}
}
创建结果视图:
success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>显示用户信息</title>
</head>
<body>
用户名:${param.userName}<br/>
密码:${param.userPassword}<br/>
</body>
</html>
error.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>错误页面</title>
</head>
<body>
<h1 style="text-align:center;color:#43342A;font-family:Arial;font-weight:lighter;margin:0px;font-size:25px;">Login</h1>
<ul>
<li>密码必须输入</li>
<li>密码必须输入</li>
<li>确认密码必须输入</li>
<li>姓名必须输入</li>
<li>年龄必须输入</li>
<li>出生日期必须输入</li>
<li>邮箱地址必须输入</li>
</ul>
<form method="post" action="user.action">
<input style="border-radius: 2px;width:100%;height:25px;margin-top:1px;color:#AFACA7;border:1px solid #E1E1E1;"
type="text" name="userName" value="UserName"/><br/>
<input style="border-radius: 2px;width:100%;height:25px;margin-top:15px;color:#AFACA7;border:1px solid #E1E1E1;"
type="text" name="userPassword" value="Password"/><br/>
<input type="checkbox" name="user" value="remember"/><span style="color:#787975;">Remember me</span><br/>
<input style="width:100%;height:35px;margin-top:5px;background-color:#337BB6;color:#FFFFFF"
type="submit" value="Sign in" />
</form>
</body>
</html>
运行显示视图:
启动Tomcat服务器,运行此项目,在本机浏览器上输入:http://localhost:8080/struct/
登陆成功时,显示视图:
登陆失败时,显示视图:
运行原理图:
除了上面的方法外,可以使用struct2的标签库使用数据