首先,有eclipse工具,我的是indigo版本,官网下载。
然后,struts2包,官网下载最新的。
在eclipse中创建dynamic web project,填写project name,其他默认如下图
下一步,填写编译输出路径,默认为build\classes,可以改可以不改,默认即可。
下一步,勾选生成web.xml文件,finish。
一个dynamic web project就生成了,接下来加入相应jsp,action文件。
解压struts包,把其中struts-2.3.15.1\lib下的几个包拷贝到工程的WebContent/WEB-INF/lib目录下,工程结构如下:
根据需要拷贝你所需要的jar包到lib下,然后改写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_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>StrutsLoginDemo</display-name>
<!-- 定义Struts2的核心控制器:FilterDispatcher -->
<filter>
<!-- 定义核心Filter的名称 -->
<filter-name>struts2</filter-name>
<!-- 定义Filter的实现类 -->
<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>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
首页默认为login.jsp。
配置struts.xml文件,在src文件下创建struts.xml文件:
<?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>
<package name="default" namespace="/" extends="struts-default">
<action name="Login" class="action.LoginAction">
<result name="success">success.jsp</result>
<result name="input">login.jsp</result>
</action>
</package>
</struts>
注:struts.xml文件一定创建在src目录下,创建的web project默认src包在Java Resources下,而不在WebContent/WEB-INF下。
创建action文件,要跟struts.xml里的配置一致。
在src下新建一个包action,在action下创建LoginAction.java文件:
package action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private static final long serialVersionUID = 1L;
public String loginName,password,message;
public String execute() throws Exception
{
System.out.println("username:"+loginName+"; password:"+password);
if ("admin".equals(loginName)&&"admin".equals(password)) {
message=loginName+" Login Success!";
}else {
message=loginName+" Login Failed!";
return INPUT;
}
return SUCCESS;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
在WebContent目录下创建login.jsp和success.jsp文件:
login.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login</title>
</head>
<body>
<div align="center">
${requestScope.message }
<s:form action="Login" method="POST">
<s:textfield name="loginName" size="20" label="username"/>
<s:textfield name="password" size="20" label="password"/>
<s:submit value="submit"></s:submit>
</s:form>
</div>
</body>
</html>
success.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8">
<title>Success</title>
</head>
<body>
Login Success!
</body>
</html>
至此web project编写完成,下面创建一个server然后运行。
首先new一个server(tomcat的配置在另一篇中介绍http://blog.youkuaiyun.com/rabbitlove/article/details/9669433):
在eclipse中File->new->other->Server,next选择Tomcat v6.0 Server
改个Server name为MyServer,next可以看到刚创建的web project,选择到右边的列表中:
点击finish完成server的创建。
选中刚创建的web project右键点击Run As->Run on Server,可以看到刚创建的server
选择该server然后next可以看到web project在右侧configured列表下,点finish启动。
eclipse中打开浏览器显示login界面:
输入正确的用户名密码:
输入错误的用户名密码:
完成!
参考:http://blog.youkuaiyun.com/zhoucqu2009/article/details/7206133
http://blog.youkuaiyun.com/zhoucqu2009/article/details/7211017