- 详细步骤
-
在桌面创建一个工作空间,用 eclipse 打开
-
调整导航栏窗口,便于开发。
解释:导航栏中的project explorer不是我想要的。按照图中的1234步骤,让导航栏显示为如下图。在other->java->package explore点击之后,可能会显示在下方和控制台在一起的位置,可以拖动到左边栏,便于查看。
-
创建工作集
a.先调整 top level elements为working set
b.创建工作集
-
创建web项目
-
导入 structs2 所需要的包(需要的评论区留下邮箱)
全选所有包,build path->add to build path。只有出现下图情况才算成功。
-
配置web.xml文件(核心)
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <!-- 配置核心过滤器(总司令)structsPrpareAndExecuteFilter --> <filter> <filter-name>structs2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.class</filter-class> </filter> <filter-mapping> <filter-name>structs2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
-
编写action页面
package com.rjxy.struts2.action; import com.opensymphony.xwork2.ActionSupport; /* * 一般来说action要继承ActionSupport * */ public class JoncyHelloAction extends ActionSupport{ //我们写一个方法,这个方法可以自定义,也可以使用默认的方法 @Override public String execute() throws Exception { System.out.println("hello,world"); return "success"; } }
-
编写响应action的页面
package com.rjxy.struts2.action; import com.opensymphony.xwork2.ActionSupport; /* * 一般来说action要继承ActionSupport * */ public class JoncyHelloAction extends ActionSupport{ //我们写一个方法,这个方法可以自定义,也可以使用默认的方法 @Override public String execute() throws Exception { System.out.println("hello,world"); return "success"; } }
-
编写struct.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> <package name="default" namespace="/" extends="struts-default"> <action name="login" class="com.rjxy.struts2.action.JoncyHelloAction"> <result name="success">/WEB-INF/pages/hello.jsp</result> </action> </package> </struts>
注:该文件第一个重要作用是让StrutsPrepareAndExecuteFilter知道应该把请求交给谁。另一个重要作用是action返回结果后,应该匹配哪个页面来显示。
运行结果:
总执行图: