• Struts2入门01


    一、搭建Struts2框架

    下载Struts2:https://struts.apache.org/

    1、导入Struts依赖包

    解压:struts-2.3.37appsstruts2-blank.war

    将解压后的 WEB-INFlib下的包导入到JavaWeb项目中

    2、创建struts.xml

    src下新建struts.xml文件

    找到Libraries/Web App Libraries/struts2-core-2.3.37.jar/struts-2.3.dtd

    为struts.xml导入约束,约束为上述dts文件中

    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">

    3.创建HelloAction类

    在src下创建一般java类HelloAction,并添加方法HelloAt

    public class HelloAction {
    
        public String HelloAt() {
            
            System.out.println("HelloAt");
            return "success";
        }    
        
    }

    4、注册struts2全局过滤器

    在web.xml中注册过滤器

     <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>

    5、配置struts2.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="demo1" namespace="/He" extends="struts-default">
        <default-action-ref name="helloA"></default-action-ref>   <action name="helloA" class="Struts01.HelloAction" method="HelloAt">   <result name="success" type="dispatcher">/HelloAction.jsp</result>   </action> </package> </struts>

    启动项目在浏览器中访问:http://localhost:8080/Struts2_day01/He/helloA

    6、配置补充说明:

    package:将action封装,可以在package中配置很多action
      name:给包起名字,起到标识作用,不能与其他包名重复
      namespace:给action的访问定义一个命名空间
      extends:继承一个指定包,struts-default在:Libraries/Web App Libraries/struts2-core-2.3.37.jar/struts-default.xml中
      abstract:标识属性,标识该包不能独立运行,专门被继承
    action:配置action类
      name:Action访问的资源名称
      class:Action完整的类名,默认值com.opensymphony.xwork2.ActionSupport,可在struts-default.xml中查看
      method:指定调用Action中的哪个方法来处理请求,默认值execute
    result:结果配置
      name:处理结果的名称,与action方法的返回值对应,默认值success
      type:指定调用哪一个result类来处理结果,默认使用转发,可在struts-default.xml中查看,默认值dispatcher
         标签体:填写页面的相对路径
    default-action-ref:如果找不到包下的action,会将配置中name中的action作为默认访问的action

     7、struts常量配置

    配置方式:1、在struts.xml中  2、新建struts.properties  3、在web.xml中配置

    加载顺序同上,后配置内容会覆盖新配置内容,一般在struts.xml中配置

    可以在:Libraries/Web App Libraries/struts2-core-2.3.37.jar/org.apache.struts2/default.properties中查看常量

    常用常量:

    配置Action访问的后缀:struts.action.extension=action,, 

    配置动态方法调用: struts.enable.DynamicMethodInvocation = true

    配置国际化,解决POST请求乱码问题:struts.i18n.encoding=UTF-8

    配置热加载配置文件:struts.devMode=true

    在struts.xml中配置常量:<constant name="struts.action.extension" value="action,,"></constant>

    name:常量名

    value:常量值

    在web.xml中配置常量

    <context-param>
        <param-name>struts.i18n.encoding</param-name>
        <param-value>UTF-8</param-value>
    </context-param>

     8、struts2动态方法调用

    方式一、
    <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
    访问:http://localhost:8080/Struts2_day01/Hello/Hello!add
    方式二、(推荐)
    <
    package name="demo" extends="struts-default" namespace="/Hello"> <action name="hello_*" class="Struts01.HelloAction" method="{1}" > <result name="success">/HelloAction.jsp</result> </action> </package>
    在HelloAction中添加add方法
    访问:http://localhost:8080/Struts2_day01/Hello/Hello_add

     9、sturts2引入其他配置文件

    <include file="strutsDemo/struts.xml"></include>

     10、Action的3种创建方式

    方式一、直接创建类,可以使POJO(一般java类,不去继承任何父类,也不实现任何借口)
    使struts2框架的代码侵入性更低
    
    方式二、实现接口 Action(xwork2的包)
    里面有execute方法,提供action方法规范
    Action接口中预置了一些字符串,可以在返回结果时使用
    public class Demo1 implements Action {
    
        @Override
        public String execute() throws Exception 
        {
            // TODO Auto-generated method stub
            return null;
        }
    
    }
    
    方式三、继承ActionSupport(常用方法)
    //帮我们实现了许多接口
    //如果需要用到这些接口的实现时,不需要自己来实现了
    import com.opensymphony.xwork2.ActionSupport;
    
    public class Demo2 extends ActionSupport {
    
    }
  • 相关阅读:
    solaris10 服务管理
    DLL的导出导入与调用
    c# Font字体
    WaitForMultipleObjects、WaitForSingleObject、GetExitCodeThread
    solaris10补丁管理
    注册表API函数
    简单的编码加密
    asp.net 调用外部程序
    Global.cs 获取网址
    Jquery easyui dialog组件, 默认不自动打开
  • 原文地址:https://www.cnblogs.com/harriets-zhang/p/13433681.html
Copyright © 2020-2023  润新知