Struts2-整理笔记(二)常量配置、动态方法调用、Action类详解

1.修改struts2常量配置(3种)

第一种

在str/struts.xml中添加constant标签

1 <struts>
2     <!-- 如果使用使用动态方法调用和include冲突 -->
3     <constant name="struts.enable.DynamicMethodInvocation" value="true" />
4     <!-- 开发者模式 -->
5     <constant name="struts.devMode" value="true" />
6 </struts>

第二种

src下新建一个struts.properties

struts.enable.DynamicMethodInvocation=true
struts.devMode=true

第三种

在web.xml 添加context-param标签

<context-param>

  <param-name>键</param-name>

  <param-value>值</param-value>

</context-param>

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  
  <context-param>
      <param-name>struts.i18n.encoding</param-name>
      <param-value>UTF-8</param-value>
  </context-param>
  
</web-app>

2.常用的常量配置

struts.i18n.encoding=UTF-8

i18n 国际化 解决post提交乱码

 

struts.action.extension=action,,

指定访问action时的后缀名 默认为action和空

 

struts.devMode = false

指定struts2是否以开发模式运行

国际化可以不重启

struts.xml不需要重启就可以生效(热加载)

更多的错误信息提示

 

struts.enable.DynamicMethodInvocation = false

动态方法调用开启常量 默认是false 需要开启

 

如果想找更多的常量配置可以到struts2-core-2.3.20.jar->org.apache.struts2->default.properties里 面有strtus默认的常量配置

 

3.动态方法调用(2种)

方式一

第一步

<?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>
    <!-- 配置动态方法调用是否开启常量 默认是关闭的,需要手动开启 -->
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />

    <package name="dynamic" namespace="/dynamic" extends="struts-default">
        <action name="Demo1Action" class="cn.zhr.Demo1Action">
            <result name="success" type="dispatcher">hello.jsp</result>
        </action>
    </package>
</struts>

第二步 通过输入网站地址 要使用!跟方法名

http://localhost:8080/struts2_day01/dynamic/Demo1Action!add

方式二

利用通配符使用{来取出*号的内容}

<?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>
    <!-- 配置动态方法调用是否开启常量 默认是关闭的,需要手动开启 -->
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />

    <package name="dynamic" namespace="/dynamic" extends="struts-default">
        <action name="Demo1Action_*" class="cn.zhr.Demo1Action" method="{1}">
            <result name="success" type="dispatcher">hello.jsp</result>
        </action>
    </package>
</struts>

http://localhost:8080/struts2_day01/dynamic/Demo1Action_add.action

4.action类详解

Action类的书写方式

方式一:

创建一个类,可以是POJO,不用继承任何父类,也不需要实现任何接口

是struts2框架的代码侵入性更低

public calss Demo3Action{}

 

方式二:

实现一个接口Action

里面有execute方法,提供action方法的规范

Action接口预置了一些字符串,可以返回结果时使用,为了方便

public class Demo4Action implements Action{

  @Override

  public String execute() throws Exception{

    return null;

  }

}

 

方式三:

继承一个类ActionSupport

帮我们实现了Action,Validateable,ValidationAware,TextProvider,LocaleProvider

如果我们需要使用到这些接口的实现时,不需要自己来实现了

public class Demo5Action extends ActionSupport{

 

}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值