初学者使用IntellJ IDEA建立Struts2项目

时间:2021-05-28 13:23:25

1、建立项目,打开IDEA,点击File——new project,选择Java Module,点击Next

初学者使用IntellJ IDEA建立Struts2项目


选中Web ApplicationVersion选中3.0,选中create web.xml自动创建web.xml文件,至此,我们就建立好一个web项目。

初学者使用IntellJ IDEA建立Struts2项目


2WEB-INF下建立两个文件夹,分别命名为lib(用于存放项目所需的一些列jar包),classes(用于存放编译过的文件),注意命名不要错。配置环境Ctrl+Alt+Shift+S打开配置窗口或在工具栏选中,选中jdk的安装位置(注:是JDK而不是JRE的安装位置)

初学者使用IntellJ IDEA建立Struts2项目

指定编译后的文件的输出的位置,即我们刚创建的classes文件夹;

初学者使用IntellJ IDEA建立Struts2项目

指定项目所需的jar包的存放位置

初学者使用IntellJ IDEA建立Struts2项目

点击+号,选择java,选中刚我们创建的lib文件夹。之后会出现一个Attach Files对话框,选择jar directory即可,有时候会给出fix的提示,直接fix即可。


3、配置tomcat初学者使用IntellJ IDEA建立Struts2项目


点击+号初学者使用IntellJ IDEA建立Struts2项目

选择本地Tomcat的安装位置;

初学者使用IntellJ IDEA建立Struts2项目

小伙伴们看到那个Fix提示没?直接Fix即可。


4、首先将Struts所需要的jar包考到lib文件夹下面,必须的jar如下:

初学者使用IntellJ IDEA建立Struts2项目

注:之前看的很多教材中说必要的jar不包括commons-lang3这个包,但是自己运行的时候老是报Exception starting filter struts2
java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils错误,但是添加这个包后就好了。


5、配置web.xml文件,定义Struts2的核心Filter,用于拦截所有的请求。Struts2框架是通过Filter来启动的,启动后开始读取struts.xml文件。


[html] view plain copy
  1. <?xml version="1.0" encoding="GBK"?>  
  2. <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_3_0.xsd" id="WebApp_ID" version="3.0">  
  3.   
  4.     <!-- 定义Struts2的核心Filter -->  
  5.     <filter>  
  6.         <filter-name>struts2</filter-name>  
  7.         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  8.     </filter>  
  9.     <!-- 让Struts2的核心Filter拦截所有请求 -->  
  10.     <filter-mapping>  
  11.         <filter-name>struts2</filter-name>  
  12.         <url-pattern>/*</url-pattern>  
  13.     </filter-mapping>  
  14. </web-app>  

6、配置Struts.xml文件

[html] view plain copy
  1. <?xml version="1.0" encoding="GBK"?>  
  2. <!DOCTYPE struts PUBLIC  
  3.         "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"  
  4.         "http://struts.apache.org/dtds/struts-2.1.7.dtd">  
  5. <!-- 指定Struts 2配置文件的根元素 -->  
  6. <struts>  
  7.     <!-- 指定全局国际化资源文件 -->  
  8.     <constant name="struts.custom.i18n.resources" value="mess"/>  
  9.     <!-- 指定国际化编码所使用的字符集 -->  
  10.     <constant name="struts.i18n.encoding" value="GBK"/>  
  11.     <!--指定constant的name为devMode表示处于开发模式,value=true修改配置文件内容自动热替换而不需要每次重新发布-->  
  12.     <constant name="struts.devMode" value="true"/>  
  13.     <!-- 所有的Action定义都应该放在package下,Struts2中通过package来管理action,这里的包名name并不对应java类中的包 -->  
  14.     <package name="wbb" extends="struts-default">  
  15.         <action name="login" class="w_basketboy.helloworld.action.LoginAction">  
  16.             <!-- 定义三个逻辑视图和物理资源之间的映射 -->  
  17.             <result name="input">/login.jsp</result>  
  18.             <result name="error">/error.jsp</result>  
  19.             <result name="success">/success.jsp</result>  
  20.         </action>  
  21.     </package>  
  22. </struts>  

web.xml文件中定的拦截器拦截所有的请求后,到struts文件中找到对应的action,执行一系列方法后对其结果集做处理,如果失败跳转到error.jsp页面,如果成功跳转到success.jsp页面。


7、建立action文件

[java] view plain copy
  1. LoginAction.java:  
  2. package w_basketboy.helloworld.action;  
  3.   
  4. import com.opensymphony.xwork2.ActionContext;  
  5. import com.opensymphony.xwork2.ActionSupport;  
  6.   
  7. public class LoginAction extends ActionSupport {  
  8.     //定义封装请求参数的username和password属性  
  9.     private String username;  
  10.     private String password;  
  11.   
  12.     public String getUsername() {  
  13.         return username;  
  14.     }  
  15.   
  16.     public void setUsername(String username) {  
  17.         this.username = username;  
  18.     }  
  19.   
  20.     public String getPassword() {  
  21.         return password;  
  22.     }  
  23.   
  24.     public void setPassword(String password) {  
  25.         this.password = password;  
  26.     }  
  27.   
  28.     //定义处理用户请求的execute方法  
  29.     public String execute() throws Exception {  
  30.         //当username为wbb,password为wbb时即登录成功  
  31.         if (getUsername().equals("wbbw") && getPassword().equals("wbb")) {  
  32.             ActionContext.getContext().getSession().put("user", getUsername());  
  33.             return "success";  
  34.         } else {  
  35.             return "error";  
  36.         }  
  37.     }  
  38. }  

8、建立相应的jsp文件;

[html] view plain copy
  1. login.jsp:  
  2.   
  3. <%--  
  4.   Created by IntelliJ IDEA.  
  5.   User: wbb  
  6.   Date: 13-7-31  
  7.   Time: 上午9:28  
  8.   To change this template use File | Settings | File Templates.  
  9. --%>  
  10. <%@ page contentType="text/html;charset=UTF-8" language="java" %>  
  11. <html>  
  12. <head>  
  13.     <title></title>  
  14. </head>  
  15. <body>  
  16.         <form action="login" method="post">  
  17.             用户名:<input type="text" name="username"></br>  
  18.             密  码:<input type="text" name="password"></br>  
  19.             <input type="submit" value="提交">  
  20.         </form>  
  21. </body>  
  22. </html>  

[html] view plain copy
  1. success.jsp:  
  2.   
  3. <%--  
  4.   Created by IntelliJ IDEA.  
  5.   User: wbb  
  6.   Date: 13-7-31  
  7.   Time: 上午9:28  
  8.   To change this template use File | Settings | File Templates.  
  9. --%>  
  10. <%@ page contentType="text/html;charset=UTF-8" language="java" %>  
  11. <html>  
  12. <head>  
  13.     <title></title>  
  14. </head>  
  15. <body>  
  16.         欢迎您:${sessionScope.user}  
  17. </body>  
  18. </html>  

[html] view plain copy
  1. error.jsp:  
  2.   
  3. <%--  
  4.   Created by IntelliJ IDEA.  
  5.   User: wbb  
  6.   Date: 13-7-31  
  7.   Time: 上午9:27  
  8.   To change this template use File | Settings | File Templates.  
  9. --%>  
  10. <%@ page contentType="text/html;charset=UTF-8" language="java" %>  
  11. <html>  
  12. <head>  
  13.     <title></title>  
  14. </head>  
  15. <body>  
  16.     对不起,登录失败,用户名密码错误!  
  17. </body>  
  18. </html>  

9、启动tomcat,在浏览器地址栏输入http://localhost:8080/login.jsp得到登录界面:

初学者使用IntellJ IDEA建立Struts2项目

转载出处:http://blog.csdn.net/w_basketboy24/article/details/9336641