用Eclipse配置一个简单的struts2,网上的水太深,坑多,各种折磨。下面就是总结并给出明确的步骤,保证一次到位。当然,版本有差异。
在Eclipse中选择File-New-Dynamic Web Project创建动态项目Struts2Demo
下面先给出项目的代码以及工程路径截图:
<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>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
<!--注意:一些较低的版本,类名中是没有ng这个名称的,建议下载稍高一些的版本-->
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern><!--这里建议用*.action,使用/*容易出错 -->
</filter-mapping>
2、配置struts2.xml ,注意该文件放的位置,放在工程目录的src下面(如上图所示位置),服务器运行时会自动加载到META-INF目录下面的classes文件夹,默认是不显示这个文件的。
<?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">
<!--这段语句得加,否则显示警告标示,2.3对应你下载的struts版本号 -->
<struts>
<package name="com.lx1991.action" extends="struts-default">
<!--这个包名要与在目录src下面建立的com.lx1991.action包名一致 -->
<action name="LoginAction" class="com.lx1991.action.LoginAction">
<!--注意:这个name名称与login.jsp里form表单的action="LoginAction.action"一致-->
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
3、在工程目录WebContent根目录下面创建login.jsp,用来提交用户名(username)和密码(password)
<body>
<!--LoginAction就是struts.xml里面com.lx1991.action.LoginAction的URL对应的名称(name) -->
<form action="LoginAction.action" method="post">
用户名:<input type="text" name="username" /><br>
密码:<input type="password" name="password" /><br>
<input type="submit" value="提交" />
</form>
</body>
4、在工程目录WebContent根目录下面创建success.jsp,login.jsp提交的内容经过LoginAction.java类执行,返回的结果经过struts2.xml进行处理,然后转到相应的页面。(例如,输入的用户名和密码正确,转到success.jsp,否则转到error.jsp页面)
<body>
<font color="red" size="20">Success's HelloWorld.. </font>
</body>
5、在工程目录WebContent根目录下面创建error.jsp
<body>
<font color="red" size="20">Error's Page</font>
</body>
6、在工程目录-->Java resources-->src文件下面,新建包(本例包名为:com.lx1991.action), 并在包下面创建LoginAction.java类
package com.lx1991.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{ //这里继承ActionSupport
private static final long serialVersionUID = 1L;
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;
}
@Override
public String execute() throws Exception {
if("lx".equals(username)&&"123".equals(password)){//简单验证用户名和面膜
return "success";
}else{
return "error";
}
}
}
7、点击工程Struts2Demo名,右键-->Run As-->Run on Server-->Apache Tomcat 7.0执行。
访问路径:http://localhost:8080/Struts2Demo/login.jsp
注意事项:如果,login.jsp页面使用struts2标签的如下面的代码,那么访问路径为
http://localhost:8080/Struts2Demo/login.action(暂时不建议login.jsp使用struts标签)
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Login</title>
</head>
<body>
<!--helloWorld就是struts.xml里面HelloWorld的URL -->
<s:form action="HelloWorld.action" method="post">
<s:textarea name="username" label="用户名" /><br>
<s:password name="password" label="密码" /><br>
<s:submit value="提交" />
<s:reset value="重置" />
</s:form>
</body>
</html>