网上找的教程都不完美,也许我这个教程也不完美,主要是包导入不完整,但是可以教大家如何做到完美。
1、添加jar包
commons-fileupload-1.3.1.jar
commons-io-2.2.jar
commons-lang-2.4.jar
commons-lang3-3.1.jar
commons-logging-1.1.3.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
ognl-3.0.6.jar
struts2-core-2.3.16.3.jar
xwork-core-2.3.16.3.jar
2、在web.xml配置文件中配置过滤器
<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>
3、创建一个action
package com.skywo.action;
public class LoginAction {
// servlet api xxx
public String execute() throws Exception{
if(username != null && username.equals("skywo")){
return "success";
}else{
return "failure";
}
}
/*
public String login() throws Exception{
if(username != null && username.equals("skywo")){
return "success";
}else{
return "failure";
}
}
*/
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;
}
}
4、配置action在struts.xml配置文件中,struts.xml放到src/下面。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="example" namespace="/" extends="struts-default">
<action name="login" class="com.skywo.action.LoginAction">
<result name="success">/Success.jsp</result>
<result name="failure">/Failure.jsp</result>
</action>
</package>
</struts>
5、JSP调用
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String path= request.getContextPath();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<form name="f1" action="<%=path %>/login.action" method="post">
<table border="0">
<tr>
<td>Username: </td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>Password: </td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Login"></td>
</tr>
</table>
</form>
</body>
</html>
在这里要注意的是,启动tomcat的时候出现的错误不要无视,之前我就是犯了这个错误才导致了很多麻烦,一般都提示缺少包,添加对应的包即可~