zoukankan      html  css  js  c++  java
  • struts2学习笔记——第一个struts2应用配置

      说实在的,随着Java学习的不断深入,特别是Java web框架部分,调bug让人很心累,但是每征服一个bug,内心的成就感也是难以言说的。第一个struts2应用的配置,我昨天折腾了快2个小时,最后还是放弃了,今天在摸索之下,终于打通了第一个struts2的任督二脉,下来就把我个人的配置过程写下来,希望后面学习的java友少走的弯路。

      一、创建web工程(eclipse k kepler版本):

        直接上图:

    二、导入struts2关键包

      1、需要导入的关键包,不导入这些包会导致报错,我就知bug在这里了:

      

      我没有导入log4j-api-2.7.jar然后tomcat就无法启动了,这里还要注意的是,在2.5之前的版本中导包时还需要导入xwork这个包,在2.5中该包已经包含在struts的核心包中了,我们也就省去了这一步,不相信的java友可以打开核心包看下包结构:

    2、导包过程:

      如上图,添加9个必须包;下面的操作是添加一个struts2的个人包库,方便后面创建struts2,总不能每一次都导入一次:

    导包到此结束,后面开始最麻烦的web.xml的配置

    三、action编码:

      必须继承com.opensymphony.xwork2.ActionSupport,并重写execute()方法:

    package com.sysker.main;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class HelloWorldAction  extends ActionSupport{
    
    	/**
    	 * action test
    	 */
    	private static final long serialVersionUID = 1L;
    
    	@Override
    	public String execute() throws Exception {
    		// TODO Auto-generated method stub
    		System.out.println("执行Action");
    		return SUCCESS;
    	}
    	
    }
    

      

    四、配置文件

      1、web.xml的配置:

      注意:其中<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>和2.5之前的版本是不一样的,以前的是org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter但是你看一下源码就知道如何修改,这一对标签是配置filter类——StrutsPrepareAndExecuteFilter,打开struts2的核心包struts2-core-2.5.10.1.jar,参考之前的配置路径看一下就会发现区别:

    这就是java的包管理,其他的配置也可以参考这个方式。

    完整配置文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     3     xmlns="http://java.sun.com/xml/ns/javaee" 
     4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     5      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
     6     id="WebApp_ID" version="3.0">
     7   <display-name>struts2001</display-name><!-- 项目名称 -->
     8   
     9   <filter>
    10   <filter-name>struts2001</filter-name><!--过滤器名称-->
    11   <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
      <!--过滤器地址,配置完按住Ctrl看鼠标是否可以打开连接,能打开说明配置正确-->
    12 </filter> 13 14 <filter-mapping> 15 <filter-name>struts2001</filter-name><!--和上面的必须一致--> 16 <url-pattern>/*</url-pattern><!--过滤地址,*表示过滤所有页面--> 17 </filter-mapping> 18 19 <welcome-file-list> 20 <welcome-file>index.jsp</welcome-file> 21 <welcome-file>default.jsp</welcome-file> 22 </welcome-file-list> 23 </web-app>

       2、struts.xml配置文件:

      首先路径和web.xml是不一样的,struts.xml是在src下面的:

    配置如下:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE struts PUBLIC
     3 
     4     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
     5     "http://struts.apache.org/dtds/struts-2.3.dtd">
     6     
     7 <struts>
     8 
     9     <package name="default" namespace="/" extends="struts-default"><!--这个还没深入了解,但是是必须的-->
    10         <action name="helloworld" class="com.sysker.main.HelloWorldAction"><!--配置action的路径,完整包名-->
    11             <result>/result.jsp</result><!--执行action后返回的结果-->
    12         </action>
    13     </package>
    14 
    15 
    16 </struts>

      到这里,第一个struts2就可以顺利执行了,欢迎交流!

  • 相关阅读:
    ViewPager部分源码分析二:FragmentManager对Fragment状态的管理完成ViewPager的child添加或移出
    ViewPager部分源码分析一:加载数据
    Android View的scrollTo(),scrollBy(),getScrollX(),getScrollY()
    关于android的单位dp与px
    ListView + PopupWindow实现滑动删除
    Android自学指导
    Ubuntu 14.04 Trusty安装java环境
    Git+VirtalBaox+Vagrant创建Linux虚拟机
    ListView介绍
    Load store and memoryless
  • 原文地址:https://www.cnblogs.com/caoleiCoding/p/6838553.html
Copyright © 2011-2022 走看看