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. 友元函数 C++

    #include<iostream> #include<vector> using namespace std; class Text{ public: Text():a(){ ...

  2. O(nlogn)算法,最长上升子序列,,非动规

    //最长上升子序列最快算法,非动态规划,运用了二分思想,还有栈的思想, //用每一个数去和栈中的栈顶元素相比较,如果大于栈顶元素,则入栈,否则运用二分查找,寻找出第一个比这个数大的那个数替换 #inc ...

  3. 过渡与动画 - steps调速函数&CSS值与单位之ch

    写在前面 上一篇中我们熟悉五种内置的缓动曲线和(三次)贝塞尔曲线,并且基于此完成了缓动效果. 但是如果我们想要实现逐帧动画,基于贝塞尔曲线的调速函数就显得有些无能为力了,因为我们并不需要帧与帧之间的过 ...

  4. flask-login使用笔记

    看外国文献的中文翻译  翻译的程度有的让人会疯,翻译最好的状态是异译 直译会显的很生硬 看起来确实难过:所以在看的时候,建议都看外国文献吧,或者自己用谷歌翻译,感觉比一些翻译的博客准多了: 在使用fl ...

  5. Js 作用域与作用域链与执行上下文不得不说的故事 ⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄

    最近在研究Js,发现自己对作用域,作用域链,活动对象这几个概念,理解得不是很清楚,所以拜读了@田小计划大神的博客与其他文章,受益匪浅,写这篇随笔算是自己的读书笔记吧~. 作用域 首先明确一个概念,js ...

  6. GDAL编译

    使用cmd命令行编译 1.首先在“开始菜单\所有程序\Microsoft Visual Studio 2008\Visual Studio Tools\ Visual Studio 2008命令提示” ...

  7. ssm整合(基于xml配置方式)

    本文是基于xml配置的方式来整合SpringMVC.Spring和Mybatis(基于注解的方式会再写一篇文章),步骤如下: (1)首先自然是依赖包的配置文件 pom.xml <project ...

  8. 微信小程序去除button按钮的边框

    小程序开发记录 小程序开发中, 有时候我们希望button不要有边框, 需要使用button::after来实现, 具体如下: .operations button::after{border:0 n ...

  9. Replace Pioneer

    Replace Pioneer(官网:http://www.mind-pioneer.com)是一款专业的文本批量处理软件.仅仅要给定不论什么纯文本文件或文件列表.仅仅要准确设置转换规则.就能得到不论 ...

  10. 《Deep Learning》译文 第一章 前言(中) 神经网络的变迁与称谓的更迭

    转载请注明出处. 第一章 前言(中) 1.1 本书适合哪些人阅读? 能够说本书的受众目标比較广泛,可是本书可能更适合于例如以下的两类人群.一类是学习过与机器学习相关课程的大学生们(本科生或者研究生). ...