手动配置Struts2
下载Struts2和配置web.xml
1.点击这里进入下载struts-2.3.31-all.zip Struts2.3的最后一个版本。
2.解压struts-2.3.31-all.zip,可以看到如下:
3.进入apps->找到struts2-blank.war->解压到一个自己创建的文件夹(例如:struts2-blank)
4.进入struts2-blank文件下->进入WEB-INF->进入lib,这些就是我们要引入的jar包:
5.把这些jar包复制到我们Web Project的WEB-INF/lib路径下。
6.接下来编辑我们Web Project的web.xml配置文件,配置Struts2的核心Filter。(复制粘贴就行,不用自己打)
(1)依旧进入刚才的struts2-blank->WEB-INF->web.xml,打开,拷贝如下:
<!-- 定义Struts2的核心Filter(我们之前JavaEE学的过滤器) -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!-- 让Struts2的核心Filter拦截所有请求 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
(2)配置好的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" 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>Struts2_1000</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
实例:增加登录处理
1.创建JSP页面login.jsp(登录页面,这里把jsp页面放在WebRoot/WebContent路径下,比较专业点…,看代码感觉这本书的作者闲的当疼…)
(路径:/Struts2_1000/WebRoot/WebContent/login.jsp)
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title><s:text name="LoginPage"/></title>
</head>
<body>
<s:form action="login">
<s:textfield name="username" key="user"/>
<s:textfield name="password" key="pass"/>
<s:submit key="login"/>
</s:form>
</body>
</html>
2.创建welcome.jsp和error.jsp:登陆成功页面和登录失败页面,这个自己随便写就行,JSP页面记得放在我们刚才的WebContent路径下,比较好一点。
3.前面定义login.jsp页面中登录表单时指定该表单的action为login,因此我们还必须定义一个Struts2的Action,Struts2的Action通常应该继承ActionSupport基类,重写execute()方法。
(路径:/Struts2_1000/src/csdn/slow/app/action/LoginAction.java)
package csdn.slow.app.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private String username;
private String 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;
}
//定义处理用户请求的execute方法
public String execute() throws Exception {
if(getUsername().equals("slow") && getPassword().equals("slow")) {
ActionContext.getContext().getSession().put("user", getUsername());
return SUCCESS;
}
return ERROR;
}
}
用户名和密码为slow,就认为登录成功。
4.创建和配置struts.xml(还是复制粘贴,不用自己写)
(1)把刚才struts-blank里面的struts.xml复制到Web Project的src文件夹里,配置好的struts.xml如下:
<?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>
<!-- 指定全局国际化资源文件 -->
<constant name="struts.custom.i18n.resources" value="mess"/>
<!-- 指定国际化编码所使用的字符集 -->
<constant name="struts.i18n.encoding" value="GB18030"/>
<!-- 所有的Action定义都应该放在package下 -->
<package name="slow" namespace="/" extends="struts-default">
<action name="login" class="csdn.slow.app.action.LoginAction">
<!-- 定义三个逻辑视图和物理资源之间的映射 -->
<result name="input">/WebContent/login.jsp</result>
<result name="error">/WebContent/error.jsp</result>
<result name="success">/WebContent/welcome.jsp</result>
</action>
</package>
</struts>
补充:这里还要再编写一份mess.properties(…感觉一个例子就应该简单点),如下:
loginPage=\u767B\u5F55\u9875\u9762
errorPage=\u9519\u8BEF\u9875\u9762
succPage=\u6210\u529F\u9875\u9762
failTip=\u5BF9\u4E0D\u8D77\uFF0C\u4F60\u4E0D\u80FD\u767B\u5F55\uFF01
succTip=\u6B22\u8FCE\uFF0C{0}\uFF0C\u60A8\u5DF2\u7ECF\u767B\u5F55\uFF01
user=\u7528\u6237\u540D
pass=\u5BC6\u7801
login=\u767B\u5F55
5.部署项目和测试:
意外(惊喜):ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
解决方案点击这里
自学真的好苦逼。。。O__O “…