zoukankan      html  css  js  c++  java
  • Struts2开发步骤

    第一步:新建we项目

    新建名称为“Struts"的web工程,新建方法:File->New->Web Service Project->Profect Name中输入:Struts->点击Finish按钮完成新建。

    第二步:导入架包

    (1)在Struts工程的右键菜单上选择"Properties"命令,打开”Properties for Struts2"对话框,在struts2解压后的lib目录中选择如下13个文件:asm-3.3.jar,asm-commons-3.3.jar,asm-tree-3.3.jar,commons-fileupload-1.3.jar(文件上传时需要使用),commons-io-2.2.jar( Java io扩展),commons-lang3-3.1.jar( 包含了一些数据类型的工具类),commons-logging-1.1.3.jar(日志处理),freemarker-2.3.19.jar( Struts2的标签模板使用类库),javassist-3.11.0.GA.jar(对字节进行处理),log4j-1.2.17.jar,ognl-3.0.6.jar(  Struts2使用的一种表达式语言类库),struts2-core-2.3.16.jar(Struts2框架的核心类库),xwork-core-2.3.16.jar( XWork类库,Struts2的构建基础)

    (2)再把上面13个jar包考到“WebRootWEB-INFlib”目录下

    第三步:配置web.xml文件
    StrutsPrepareAndExecuteFilter//struts准备和执行的一个过滤器
    (导包:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter)
    <!-- Struts2核心过滤器配置 -->
          <filter>
              <filter-name>struts2</filter-name>
              <filter-class>/org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
          </filter>
    <!-- <url-pattern></url-pattern>过滤的请求格式 -->
          <filter-mapping>
              <filter-name>struts2</filter-name>
              <url-pattern></url-pattern>
          </filter-mapping>
    第四步:开发视图层页面
        创建一个login.jsp
        <div align="center">
            <form action="" method="post">
                用户名:<input type="text" name=""/><br/>
                密    码:<input type="password" name=""/><br/>
                <input type="submit" value="登录"/>
            </form>
        </div>
    第五步:开发控制层Action

        实现Action(import com.opensymphony.xwork2.Action;)

        public class HelloWorldAction implements Action {
        // 用户输入的姓名
        private String name = "";
        // 向用户显示的信息
        private String message = "";
        public String execute() {
        // 根据用户输入的姓名,进行"Hello,XXXX!"的封装
        this.setMessage("Hello,"+this.getName()+"!");
        // 处理完毕,返回导航结果的逻辑名
        return "success";
        }
        …    
        //省略setter、getter方法
    }
    第六步:src下配置Struts.xml文件
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>    
        <!-- 打开方法的动态调用 -->    
        <constant name="struts.enable.DynamicMethodInvocation" value="true" />                        
        <!-- Struts-default里面是一些拦截器的配置 ("/")代表根目录-->
        <package name="mypackage" extends="struts-default" namespace="/">
            <action name="user" class="com.zking.action.UserAction">
                <!--成功跳转到login_success.jsp页面-->
                <result name="success" type="">login_success.jsp</result>
                <!--失败跳转到login_success.jsp页面-->
                <result name="fail" >login_fail.jsp</result>
            </action>
        </package>
    </struts>   

    第八步:发布项目

    按"F11"发布项目到Tomcat服务器或右键单击项目->Run As->Myeclipse Server Application->Tomcat6.0->OK即可。

    struts2的执行流程:

      浏览器发起请求--->服务器接收并处理请求--->项目的web.xml 中匹配过滤器--->匹配是否有对应的Action--->生成对应的Action对象--->调用action对象的处理方法--->返回结果。

    详细流程图:

    <struts>
    <!-- 
            constant 常量配置
            struts.devMode 设置是否是开发模式
         -->
        <constant name="struts.devMode" value="true" />
        <!-- 设置编码 -->
        <constant name="struts.i18n.encoding" value="utf-8"/>
        <!-- 设置action的扩展名 -->
        <constant name="struts.action.extension" value="action,,do"/>
        <!-- 
            package表示一个包每个包下可以配置多个action  包的作用主要用来区分不同模块的配置
            不同模块配置在不同的包下
            name 是包名  在项目下唯一 通常使用模块名做为包名
            extends 表示继承 必须直接或者间接继承struts-default
            namespace 表示命名空间  命名空间和请求名直接相关  
            请求名=项目发布路径名+namespace名+action名
            namespace名称通常也和模块名相关
         -->
        <package name="default" extends="struts-default" namespace="/user">
            <!-- action 配置请求名 一个action表示对一个请求的处理
                name在同一个包下唯一 会作为请求名称 该名称会自动将请求的扩展名去掉,所以不用配置扩展名
                class 配置处理请求的类的完全限定名=包名+类名。如果不配置class默认由
                com.opensymphony.xwork2.ActionSupport来处理。
                method 配置处理方法的名称  默认由execute方法处理
                在struts2中处理方法  必须是 public的,返回值必须是String。
             -->
            <action name="hello" class="cn.sxt.action.HelloAction" method="hello">
                <!-- result配置的结果集处理  每个action中可以及配置多个result 
                    name表示结果集名称 和处理方法的返回值进行匹配 默认是success;
                    type表示结果集类型
                        dispatcher 转发-默认
                        redirect 重定向
                        redirectAction 重定向到另外一个action
                        stream 流
                        chain  表示action链
                    result中填写要跳转的页面的路径
                -->
                <result name="success" type="dispatcher">/index.jsp</result>
            </action>
        </package>
        <!-- 
            include用于添加其他配置文件,在团队开发中使用
            不同模块一般使用不同的配置文件,在总的配置文件中加入即可
         -->
        <include file="user.xml"></include>
    </struts>
  • 相关阅读:
    [css3]搜索框focus时变长
    [css3]文字过多以省略号显示
    HTML5表单新增属性
    [JS]getYear()和getFullYear()方法区别
    红包彩带动画效果
    ios下input focus弹出软键盘造成fixed元素位置移位
    旋转效果
    移动端前端开发
    如何加快页面加载速度
    centos7/rhel7下安装redis4.0集群
  • 原文地址:https://www.cnblogs.com/yang82/p/7929470.html
Copyright © 2011-2022 走看看