编辑工具:Spring Tool Suite 3
提取码:f03i
java环境:jdk1.8
提取码:vo2x
运行环境:tomcat9.0(64)
提取码:fw8p
在项目中使用Struts2
Struts2配置步骤、执行过程
先放上项目结构图:
Login.java是放在src目录下的action包下,struts.xml是放在WebContent目录下的WEB-INF子目录下的classes文件夹中,jar包是放在WebContent目录下的WEB-INF子目录下的lib目录中

web.xml是放在WebContent目录下的WEB-INF子目录下

login.jsp和welcome.jsp是放在WebContent目录下

菜单栏“File”-“new”-“Dynamic-Web-Project”
拷贝jar包
将在下面连接中下载好的“struts2-jar包和配置文件”压缩文件夹解压,复制“struts2-basic-13jars”文件中所有jar包到Web工程的lib目录下
struts2-jar包和配置文件
提取码:0trk
配置web.xml
找到WEB-INF目录下的web.xml文件,在标签下添加过滤器filter
如果没有的话就在WEB-INF目录下新建一个web.xml文件,具体操作如下:右键点击“WEB-INF”-“New”-“File”,在“File name”后面填上文件夹的名称“web.xml”
或者在“struts2-jar包和配置文件”压缩文件夹中有一个已经配置好的web.xml文件,可以直接复制粘贴到项目中使用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" 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_3_0.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> <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> </web-app>
|
配置Struts.xml
在WEB-INF目录下新建一个classes文件夹具体操作如下:右键点击“WEB-INF”-“New”-“Folder”,在“Folder name”后面填上文件夹的名称“classes”
在“classes”目录下创建一个Struts.xml文件,创建步骤如上同。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?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.ui.theme" value="simple"></constant> <constant name="struts.i18n.encoding" value="UTF-8"></constant> <package name="default" namespace="/" extends="struts-default"> <action name="login" class="" method=""> <result name=""></result> </action> </package> </struts>
|
或者在“struts2-jar包和配置文件”压缩文件夹中有一个已经配置好的Struts.xml文件,可以直接复制粘贴到项目中使用(在压缩文件的“Struts.xml模板”文件夹中)。
创建login类(login.java)
在“Java Resources”-“src”中创建一个包,我这里创建的是“action”包,在包中创建一个“Login.java”文件,具体步骤如下,右键“src”-“New”-“Package”,Name后面敲上包名“action”到这里包就建好了,接下来创建类,右键点击“action”-“New”-“class”,在Name后面敲上“Login”,创建好login类后就开始编辑login.java文件,如下
示例:login.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| public class Login {
private String username; private String password; public void setUsername(String username) { this.username=username; } public void setPassword(String password) { this.password=password; } public String getUsername() { return username; } public String getPassword() { return password; } public String check(){ System.out.println("接收到登录请求:username:"+username+",password"); if(!username.equals("")&&!password.equals("")) { String message="登录成功"+username; ActionContext.getContext().getValueStack().set("message", message); return "ok"; } if(username.equals("")&&!password.equals("")) { String message="登录失败,用户名为空"; ActionContext.getContext().getValueStack().set("message", message); return "error"; } if(!username.equals("")&&password.equals("")) { String message="登录失败,密码为空"; ActionContext.getContext().getValueStack().set("message", message); return "error"; } else { String message="登录失败,用户名和密码为空"; ActionContext.getContext().getValueStack().set("message", message); return "error"; } }
|
jsp页面
1.在WEB-INF目录下新建jsp页面,我这里新建的是login.jsp页面和welcome.jsp页面
示例:welcome.jsp页面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Insert title here</title> </head> <body> <h1>欢迎您</h1> <hr/> <s:property value="message"/> </body> </html>
|
效果图如下:

其中<s:property value="message"/>这句话放在不同位置效果不一样,可以根据自己的需要选择放的位置,这句话也可以放在<h1>``<form>等标签中,以下是不同位置的效果图
放在<h1>里面
1 2 3
| ···(省略部分代码) <h1>欢迎您<s:property value="message"/></h1> ···
|
<h1>效果图

放在<form>里面
1 2 3 4 5 6 7
| ···(省略部分代码) <body> <form><s:property value="message"/></form> <h1>欢迎您</h1> <hr/> </body> ···
|
<form>效果图

2.在页面中引用 struts标签库
1 2 3 4
|
<%@taglib uri="/struts-tags" prefix="s"%>
|
示例:login.jsp页面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Insert title here</title> </head> <body> <h1>Hello world</h1> <hr/> <form action="login" method="post"> username:<input type="text" name="username"/><br><br> password:<input type="password" name="password"/><br><br> <input type="submit" value="登录"/> </form>
<s:property value="message"/> </body> </html>
|
示例:struts.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <?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.ui.theme" value="simple"></constant> <constant name="struts.i18n.encoding" value="UTF-8"></constant> <package name="default" namespace="/" extends="struts-default"> <action name="login" class="action.Login" method="check"> <result name="ok">welcome.jsp</result> <result name="error">login.jsp</result> </action> </package> </struts>
|
配置运行环境
“Window”-“Preferences”-“Server”-“Runtime Environment”
添加tomcat运行环境
“Add”-“Apache”-“Apache Tomcat v9.0”(这里选择下载的tomcat的版本号)-“Next”-“Browse”(选择tomcat的位置)-“Finish”-“Apply and Close”
配置Java Build Path
右键项目-“Build Path”-“Configure Build Path”-“Java Build Path”-“Libraries”-“Add Library”-“Server Runtime”-“Next”-“Apache Tomcat9.0”-“Finish”-“Apply and Close”
启动项目
“Run”-“Run As”-“Run On Server”-“Choose an existing server”-“localhost”-“Tomcatv9.0 Server at localhost”,选择刚刚添加的服务器-“Finish”