在Intellij IDEA中手动使用Maven创建Web项目并引入Struts2
创建一个新的Maven项目
建好项目之后点击左下角的enable auto import
项目部署
在Moudules中添加组件
配置webapp的路径
配置web.xml的路径
Facts: 表示当前项目的适配服务组件。可看到此项目已是一个Web项目了。
Aftifacts: 这个Aftifacts描述了当前项目发布的信息。现在进行添加,从Modeles中选择。
预览web exploded
说明:A: 现在Artifacts已有了发布的项目了(idea中准确的说应是Modele) B:output root目录描述了当前项目的编译目录及适配服务。
如有需要添加lib目录
项目结构一览
部署服务器
添加artifact
添加tomcat依赖包
添加Struts2.2.1依赖
<?xml version="1.0" encoding="UTF-8"?>
<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>com.action</groupId>
<artifactId>action</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 属性配置 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- struts2依赖包 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.2.1</version>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>action</finalName>
</build>
</project>
在src/main/java下添加一个包,包名为controller
在controller包中添加如下的类login.java
package controller;
public class login {
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;
}
public String execute() {
if (username.equals("tuhooo") && password.equals("123")) {
return "toTrue";
}
else {
return "toFalse";
}
}
}
在webapp下添加如下的几个jsp页面:
login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form name="login" method="post" action="login.action">
<p>
用户:
<input type="text" name="username" id="textfield" />
<br/>
<br/>
密码:
<input type="text" name="password" id="textfield2" />
<br/>
<br/>
<input type="submit" name="button" value="提交" />
</p>
</form>
</body>
</html>
true.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
welcome! :)
</body>
</html>
false.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
wrong! :(
</body>
</html>
添加strutt配置文件
将其直接放在resources目录下面
struts.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" extends="struts-default" namespace="/">
<action name="login" class="controller.Login">
<result name="toTrue">/true.jsp</result>
<result name="toFalse">/false.jsp</result>
</action>
</package>
</struts>
配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
version="3.0">
<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>
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
后来在Moudule中发现Maven的中添加的依赖包都没有加进去
之前这个还可以运行,然后就报这个错了
com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration
后来分析是jass这个包有问题