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

第一种

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

 <struts>
<!-- 如果使用使用动态方法调用和include冲突 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<!-- 开发者模式 -->
<constant name="struts.devMode" value="true" />
</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{
 
}
 

Struts2-整理笔记(二)常量配置、动态方法调用、Action类详解的更多相关文章

  1. JAVAEE学习——struts2_01:简介、搭建、架构、配置、action类详解和练习:客户列表

    一.struts2是什么 1.概念 2.struts2使用优势以及历史 二.搭建struts2框架 1.导包 (解压缩)struts2-blank.war就会看到 2.书写Action类 public ...

  2. c# 把一个匿名对象赋值给一个Object类型的变量后,怎么取这个变量? c# dynamic动态类型和匿名类 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic 深入浅析C#中的var和dynamic

    比如有一个匿名对象,var  result =......Select( a=>new {  id=a.id, name=a.name});然后Object  obj =  result ;我怎 ...

  3. struts2的action类详解

    Action类的书写方式 方式1

  4. JavaWeb_(Struts2框架)struts.xml核心配置、动态方法调用、结果集的处理

    此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...

  5. Struts2学习笔记二 配置详解

    Struts2执行流程 1.简单执行流程,如下所示: 在浏览器输入请求地址,首先会被过滤器处理,然后查找主配置文件,然后根据地址栏中输入的/hello去每个package中查找为/hello的name ...

  6. 2018.12.15 struts.xml 一般配置文件写法 && 配置动态方法

    struts.xml 原始配置文件 配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE s ...

  7. struts2.5+框架使用通配符与动态方法

    概述:struts2.5以后加强了安全性,下面就是安全配置引发的问题 通配符: 在学习struts框架时经常会使用到通配符调用方法,如下: <package name="usercru ...

  8. struts2-环境搭建-访问流程-配置详解-常量配置-类详解

    1 struts2概述 1.1 概念  1.2 struts2使用优势 自动封装参数 参数校验 结果的处理(转发|重定向) 国际化 显示等待页面 表单的防止重复提交 struts2具有更加先进的架构以 ...

  9. 01_5_Struts_ActionMethod_DMI_动态方法调用

    01_5_Struts_ActionMethod_DMI_动态方法调用 1. ActionMethod_DMI_动态方法调用 Action执行的时候并不一定要执行execute()方法 可以在配置文件 ...

随机推荐

  1. ##8.创建虚拟机-- openstack pike

    ##8. openstack创建虚拟机 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##.创建虚拟机.txt.s ...

  2. dataset的使用和图片延时加载的实现

    首先,先介绍一下关于javascript中dataset属性..html5中可以使用data-前缀设置我们需要的自定义属性,来进行一些数据的存放.下面是元素应用data属性的一个例子:~~~~~~~~ ...

  3. 天梯赛 L2-019. 悄悄关注 map

    L2-019. 悄悄关注 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 新浪微博上有个"悄悄关注",一个用 ...

  4. [设计模式]PHP设计模式之单例模式

    面试最常见的问题之一就是  请问您知道哪些设计模式这次先介绍最经典的单例模式.单例模式分3种:懒汉式单例.饿汉式单例.登记式单例.单例模式有以下3个特点:1.只能有一个实例.2.必须自行创建这个实例. ...

  5. 实战-Mysql5.6.36脚本编译安装及初始化

    概述 本文为centos7.3自动化编译安装mysql5.3.6的脚本及后续初始化操作,话不多少,直接上脚本. 安装脚本install.py如下: #coding=utf-8 #!/usr/bin/p ...

  6. vs 2015工具栏添加Tab Order

    1. 在工具栏右键,弹出菜单,选中“Customize”菜单项. 2. 选中Commands标签页,选择Toolbar,选择自己要加入的Tab order的类别,之后点击“Add Command”按钮 ...

  7. 初识AOP与动态代理

    AOP AOP是指在jvm运行时, 动态将代码切入到指定位置. OOP是一个维度上写代码, AOP是把他切开来, 变成立体的. 这样的好处是: 业务逻辑跟辅助逻辑分离, 例如日志打印, 性能监控, 安 ...

  8. Solr7.1---数据库导入并建立中文分词器

     这里只是告诉你如何导入,生产环境不要这样部署你的solr服务. 首先修改solrConfig.xml文件 备份_default文件夹 修改solrconfig.xml 加入如下内容 官方示例:< ...

  9. A. Arrays(Codeforces Round #317 水题)

    A. Arrays time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...

  10. 被动式Telnet研究及实现(解决内外网远程维护的困难)-part A

    欢迎转载.转载请保留原文链接:http://blog.csdn.net/mikulee/article/details/40149779 项目背景及需求: 近期公司有一个项目: 我们在一个arm主机上 ...