struts2初识简介

11 篇文章 0 订阅
4 篇文章 0 订阅

struts配置信息

1.packsge
    name 随便写 只要不重复就行 可以进行模块化区分
    namespace 命名空间 随便起 
    extends 继承一个包 struts-default
2.action
    name 这个类的访问路径
    class 类的全限定类名
    method 类方法 被访问的方法
3.result
    name 方法的返回值(匹配)
    type 请求跳转的方法 默认是dispatcher
    值部分:跳转网站资源

3.1 global-results

 全局变量
 例如:
            <global-results>
                <result name="main">/main.jsp</result>
            </global-results>
    只要是返回值为main的方法都会跳转到main.jsp页面
4.引入其他的struts配置文件
<include file="路径"></include>
1.代码演示
1.使用structs需要配置文件web.xml
  <!-- 配置struts的核心过滤器 -->
  <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>
//位置:display-name后面
//作用:
//StrutsPrepareAndExecuteFilter名字已经很能说明问题了,
//prepare与execute,前者表示准备,
//可以说是指filter中的init方法,即配制的导入;
//后者表示进行过滤,指doFilter方法,
//即将request请求,转发给对应的 action去处理。

***报错处理
//如果程序报类找不到异常,且后面有org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 等信息,
//可能是你的版本问题.解决方法是确定你的struts版本,
//如果是2.1.3之前的版本,用 org.apache.struts2.dispatcher.FilterDispatcher,
//以后的版本则配置

核心过滤器

2.在src下创建一个struts.xml配置文件
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<package name="he" namespace="/he" extends="struts-default">
    <action name="HelloAction" class="com.lanou3g.hello.HelloAction" method="hello">
        <result name="success">/hello.jsp</result>
    </action>
</package>
<!-- 引入其他的struts配置文件 -->
<!-- <include file=""></include> -->
</struts>

头文件寻找:打开Libraries->Web App Library->
struts2-core-2.3.24.jar->struts-2.3.dtd第30行
3.创建方法类
package com.lanou3g.hello;

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

页面结果:
这里写图片描述

4.修改常量配置 constant
    <!-- 去default.properties文件 找到你要修改的配置 struts.i18n.encoding=UTF-8-->
    <!-- name: 键值 value:值 -->
    <!-- 
        struts.action.extension=action,,
        表示访问路径的 后缀 可以是.action 或者无后缀
     -->
     <!--  可以给你的配置文件提供 热加载(更改完了不用重启服务器)
            struts.devMode = false 默认值(false)
      -->
<struts>
    <constant name="struts.i18n.encoding" value="UTF-8"></constant>
    <constant name="struts.devMode" value="true"></constant>
    <package name="de" namespace="/de" extends="struts-default">
        <action name="Demo01Action"  class="com.lanou3g.def.Demo01Action" method="defaultFun">
            <result name="sueecss" type="dispatcher">/hello.jsp</result>
        </action>
    </package>
</struts>
4.1方法类
package com.lanou3g.def;

public class Demo01Action {
    public String defaultFun() {
     System.out.println("Demo01Action");
     return "sueecss";
    }
}
5.常量配置 动态方法(不常用 搜索引擎抓取不好 网址过于复杂)
<!-- 
    struts.enable.DynamicMethodInvocation = false
 -->
<!--  使用 !方法名 -->
<!-- 使用通配符访问路径  *是你的方法名
    method 标签 中{1} 代表到前面* 获取的方法名 -->
<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
    <package name="dynamic" namespace="/dynamic" extends="struts-default">

            <action name="Demo02Action_*" class="com.lanou3g.dynamic.Demo02Action"  method="add">
                <result name="success" type="dispatcher">/hello.jsp</result>
            </action>
    </package>
</struts>
5.1方法类
package com.lanou3g.dynamic;
/*
 * 动态方法测试
 */
public class Demo02Action {
     public String add() {
         System.out.println("增加方法");
         return "success";
     }
    public String add2() {
         System.out.println("删除方法");
         return "success";
     }
     public String add1() {
         System.out.println("增加方法");
         return "success";
     }
     public String find() {
         System.out.println("查找方法");
         return "success"; 
     }

}
7.Action类 创建方式一
/*
 * Action类 创建方式一
 * 随便一个普通类都可以作为一个Action
 * 只需要你去配置struts.xml文件
 * 相比于servlet 可以减少代码的侵入性
 */
public class Demo03Action {

}
8.实现Action方式二
package com.lanou3g.test;

import com.opensymphony.xwork2.Action;

/*
 * 实现Action方式二
 * 实现Action接口
 * 意义在于可以提醒Action类中的方法怎么写
 */
public class Demo04 implements Action{

    @Override
    public String execute() throws Exception {

        return null;
    }

}
9.常用创建 Action类 方式
package com.lanou3g.test;

import com.opensymphony.xwork2.ActionSupport;

/*
 * 常用创建 Action类 方式
 * 因为该类实现了 很多接口 一个接口就有一个功能
 */
public class Demo05Action extends  ActionSupport{

}
10.Action 标签的默认值
public class Demo06Action {
    public String execute() {
        System.out.println("测试 action ");
        return "success";
    }
}
10.1struts配置
<?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.enable.DynamicMethodInvocation = false
 -->
<!--  使用 !方法名 -->
<!-- 使用通配符访问路径  *是你的方法名
    method 标签 中{1} 代表到前面* 获取的方法名 -->
<struts>
<!-- 默认使用的类 ActionSupport
如果你找不到这个类 就去struts-default文件下 找到默认的类 
默认的执行方法execute();
mor接受返回值 "success"
默认的跳转方式 请求转发
-->
    <package name="test" namespace="/test" extends="struts-default">
            <action name="Demo06Action" class="com.lanou3g.test.Demo06Action"  method="execute">
                <result name="success">/hello.jsp</result>
            </action>
    </package>
</struts>

注意:模块化需要引入其他的struts配置文件
如:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值