项目结构如下如
一、引入struts2框架所需jar包
二、在web.xml中配置过滤器作用范围
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!--定义拦截器,名称为struts2 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!--定义struts2拦截器的作用范围 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
三、在\WEB-INF\classes即项目中的src根目录下,配置struts.xml,如下图,并建立国际化所需文件(test_zh_CN.properties等)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="strutsqs" extends="struts-default">
<action name="Login" class="com.gicasoft.action.LoginAction">
<result name="success">/welcome.jsp</result><!-- 成功页面 -->
<result name="error">/error.jsp</result><!-- 错误页面 -->
<result name="login">/login.jsp</result><!-- 登陆页面 -->
<result name="input">/login.jsp</result><!-- 验证错误所跳回的页面 -->
</action>
</package>
<!-- 国家化信息配置 ,test为国际化文件的基础名字,国际化文件的名字为:基础名_zh_CN-->
<constant name="struts.custom.i18n.resources" value="test"></constant>
</struts>
四、创建登陆页面login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<form action="${pageContext.request.contextPath }/Login.action"
method="post">
<table>
<tr>
<td>
<s:textfield name="username" key="username"
cssErrorStyle="background-color:#ff9999">
</s:textfield>
</td>
</tr>
<tr>
<td>
<s:password name="password" key="password"
cssErrorStyle="background-color:#ff9999">
</s:password>
</td>
</tr>
<tr>
<td>
<s:submit align="center" key="login"></s:submit>
</td>
</tr>
</table>
</form>
</body>
</html>
五、创建action方法
package com.gicasoft.action;
import com.opensymphony.xwork2.ActionSupport;
/***
* 普通类继承ActionSupport方法,实现信息验证
* @author Administrator
*
*/
public class LoginAction extends ActionSupport {
private String username;//登陆页面提交的username
private String password;//登陆页面提交的password
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;
}
@Override
public String execute() throws Exception {
if (getUsername().equals("malei") && getPassword().equals("123")) {
//登陆成功
return "success";
} else {
return "input";
}
}
@Override
public void validate() {
//验证页面提交信息,先于execute执行。
//如果有错误直接返回struts.xml中action定义的input所对应的页面
if (getUsername().equals("") || getUsername() == null) {
//username页面参数,username.required国际化所对应的值
addFieldError("username", getText("username.required"));
}
if (getPassword().equals("") || getPassword() == null) {
//password页面参数,password.required国际化所对应的值
addFieldError("password", getText("password.required"));
}
}
}