###搭建样例一
-
工具idea,tomcat
-
File->New->Project,选择Empty Project,创建一个空工程
-
File->New->Module,选择Java->Web Application下的Struts2创建一个struts2的module
-
如下图引入基础的jar包
-
修改web.xml为如下内容
<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- 配置核心拦截器 --> <filter> <!-- Filter的名字 --> <filter-name>struts2</filter-name> <!-- Filter的实现类 struts2.5以前可能有所不同 --> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <!-- 拦截所有的url --> <url-pattern>/*</url-pattern> </filter-mapping>
-
编写HelloWorldAction类
public class HelloWorldAction extends com.opensymphony.xwork2.ActionSupport { private String param; public String getParam() { return param; } public void setParam(String param) { this.param = param; } public String execute() throws Exception { System.out.println("正在执行的Action"); // 返回视图 SUCCESS,这是框架定义 if(param.equals("0")){ return ERROR; }else { return SUCCESS; } } }
-
创建success.jsp和error.jsp
-
修改struts.xml的配置文件
<struts> <package name="default" namespace="/" extends="struts-default"> <!-- name action的名字,访问时使用helloworld.action访问,class 实现类 --> <action name="helloworld" class="HelloWorldAction"> <!-- 结果集,即action中SUCCESS返回的视图 --> <result name="success">/success.jsp</result> <result name="error">/error.jsp</result> </action> </package>
-
按以上步骤搭了工程,但是却报如下错误?
原因:tomcat发布的war包中的classes文件夹下没有编译完后的类。正确的设置是下图,在war包输出时,连同编译后的classes也要一同输出
-
struts.xml出现以下错误?
原因:没有引入默认的struts-default.xml文件。打开modules设置,找到配置,点击图中的箭头把struts-default.xml添加进去
###搭建样例二(Maven搭建)
-
工具idea,tomcat
-
File->New->Project,选择Empty Project,创建一个空工程
-
File->New->Module,选择Maven->org.apache.maven.archetype:maven-archetype-webapp->Next
-
填写坐标,框红的都为none
-
填写maven的一些信息,框红的必须要填,不然这个工程创建会极慢极慢
-
填写module name
-
修改pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>maven_struts</groupId> <artifactId>maven_struts</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.3.34</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.11.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.11.0</version> <scope>compile</scope> </dependency> </dependencies> <build> <finalName>basic_struts</finalName> <plugins> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.4.7.v20170914</version> <configuration> <webApp> <contextPath>/maven_struts</contextPath> </webApp> <stopKey>CTRL+C</stopKey> <stopPort>8999</stopPort> <scanIntervalSeconds>10</scanIntervalSeconds> <scanTargets> <scanTarget>src/main/webapp/WEB-INF/web.xml</scanTarget> </scanTargets> </configuration> </plugin> </plugins> </build> </project>
-
选中名为maven_struts的module目录,右键->Maven->Reimport,导入jar,这样就可以在Project Structure->Modules->maven_struts->Dependencies中看到相应的jar了(如若不行,则先右键->maven->Download Source,在Reimport)。
如果此module缺少Web配置,则在maven_struts处右键->Add->Web,然后修改它的参数。
-
按照maven的目录架构补全相应目录
-
参照
搭建样例一
搭一个简单的struts -
在Terminal中切换到相应路径,使用
mvn compile
编译
出现以下警告,是因为pom.xml中没有设置编码
进行编码设置就可以消除警告,另外maven.compiler.source,maven.compiler.target这两个参数不要填(如果自动生成就有的,把他删了,据说它们不靠谱)<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!--<maven.compiler.source>1.7</maven.compiler.source>--> <!--<maven.compiler.target>1.7</maven.compiler.target>--> </properties>
-
选择界面右上角的
Edit Configurations
,添加Tomcat Server,选用maven_strtus:war
的war包 -
启动项目,就可以在浏览器访问了