第三章 Struts配置(第二节 Actin配置)

matplotlib三维画图之观察博弈论混合策略下纳什均衡点 参考链接: 博弈论入门20讲之第16讲-猜谜游戏-散户如何赢庄家 游戏背景: 我的期望是: 你的期望是: 使用Python的matplotlib画图: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = Axes3D(fig) X = np.linspace(0, 1, 100) Y = np.linspace(0, 1, 阅读详情

3.2 节 Actin配置

Package配置

使用package可以将逻辑上相关的一组Action,Result,Intercepter等组件分为一组,Package有些想对象,可以继承其他的Package,也可以被其他package继承,甚至可以定义抽象的Package。

Package的可以使用的属性:

属性

是否必须

说明

name

是

Package的表示,为了让其他的package引用

extends

否

从哪个package集成行为

namespace

否

参考Namespace配置说明

@TODO Namespace配置说明

abstract

否

定义这个package为抽象的,这个package中不需要定义action

 

由于struts.xml文件是自上而下解析的,所以被集成的package要放在集成package的前边。

 

Namespace配置

Namespace将action分成逻辑上的不同模块,每一个模块有自己独立的前缀。使用namespace可以有效的避免action重名的冲突,例如每一个package都可以有自己独立的Menu和Help action,但是事项方式各有不同。Struts2标签带有namespace选项,可以根据namespace的不同向服务器提交不同的package的action的请求。

 

“/”表示跟namespace,所有直接在应用程序上下文环境下的请求(Context)都在这个package中查找。

 

“”表示默认namespace,当所有的namespace中都找不到的时候就在这个namespace中寻找,例如我们上面的login应用程序。

 

例如,有如下配置:

<package name="default">

<action name="foo" class="mypackage.simpleAction>

        <result name="success" type="dispatcher">

           greeting.jsp

       </result>

    </action>

    <action name="bar" class="mypackage.simpleAction">

       <result name="success" type="dispatcher">bar1.jsp</result>

    </action>

</package>

 

<package name="mypackage1" namespace="/">

    <action name="moo" class="mypackage.simpleAction">

        <result name="success" type="dispatcher">moo.jsp</result>

    </action>

</package>

 

<package name="mypackage2" namespace="/barspace">

    <action name="bar" class="mypackage.simpleAction">

       <result name="success" type="dispatcher">bar2.jsp</result>

    </action>

</package>

 

1 如果请求为/barspace/bar.action

查找namespace/barspace,如果找到bar则执行对应的action,否则将会查找默认的namespace,在上面的例子中,在barspace中存在名字位bar的action,所以这个action将会被执行,如果返回结果为success,则画面将定为到bar2.jsp

2 如果请求为/ moo.action

根namespace('/')被查找,如果moo action存在则执行否则查询默认的namespace,上面的例子中,根namespace中存在moo action,所以改action被调用,返回success的情况下画面将定位到moo.jsp

 

Action配置

在struts2框架中每一个Action是一个工作单元。Action负责将一个请求对应到一个Action处理上去,每当一个Action类匹配一个请求的时候,这个Action类就会被Struts2框架调用。

 

一个Action配置示例:

<action name="Logon" class="tutorial.Logon">

  <result type="redirect-action">Menu</result>

  <result name="input">/tutorial/Logon.jsp</result>

</action>

每一个Action可以配置多个result,多个ExceptionHandler,多个Intercepter,但是只能有一个name,这个name和package的namespace来唯一区别一个Action。

 

每当struts2框架接受到一个请求的时候,他会去掉Host,Application和后缀等信息,得到Action的名字,例如如下的请求将得到Welcome这个Action。

http://www.planetstruts.org/struts2-mailreader/Welcome.action

 

在一个Struts2应用程序中,一个指向Action的链接通常有Struts Tag产生,这个Tag只需要指定Action的名字,Struts框架会自动添加诸如后缀等的扩展,例如:

<s:form action="Hello">

    <s:textfield label="Please enter your name" name="name"/>

    <s:submit/>

</s:form>

将产生一个如下的链接的请求:

http://Hostname:post/appname/Hello.action

 

在定义Action的名字的时候不要使用.和/来明明,最好使用英文字母和下划线。

 

Action中的方法

Action的默认入口方法由xwork2的Action接口来定义,代码清单为:

public interface Action {

    public String execute() throws Exception;

}

 

有些时候我们想指定一个Action的多个方法,我们可以做如下两步:

1    建立一些execute签名相同的方法,例如:

Public String forward() throws Exception

2    在Action配置的时候使用method属性,例如:

    <action name="delete" class="example.CrudAction" method="delete">

 

Action中的方法通配符

有些时候对Action中方法的调用满足一定的规律,例如edit Action对应edit方法,delete Action对应 delete方法,这个时候我们可以使用方法通配符,例如:

<action name="*Crud" class="example.Crud" method="{1}">

这时,editCrud Action的引用将调用edit方法,同理,deleteCrud Action的引用将调用delete 方法。

 

另外一种比较常用的方式是使用下划线分割,例如:

<action name="Crud_*" class="example.Crud" method="{1}">

这样当遇到如下调用的时候可以找到对应的方法。

"action=Crud_input"  =>  input方法

"action=Crud_delete" =>  delete方法

通配符和普通的配置具有相同的地位,可以结合使用框架的所有其他功能。

 

默认的Action

当我们没有指定Action的class属性的时候,例如:

<action name="Hello">

我们默认使用com.opensymphony.xwork.ActionSupport

ActionSupport有两个方法input和execute,每个方法都是简单的返回SUCCESS。

 

Post-Back Action

可以使用如下画面达到字画面刷新的效果

<s:form>

    <s:textfield label="Please enter your name" name="name"/>

    <s:submit/>

</s:form>

 

默认Action

通常情况下,请求的Action不存在的情况下,Struts2框架会返回一个Error画面:“404 - Page not found”,有些时候或许我们不想出现一个控制之外的错误画面,我们可以指定一个默认的Action,在请求的Action不存在的情况下,调用默认的Action,通过如下配置可以达到要求:

<package name="Hello" extends="action-default">

 

<default-action-ref name="UnderConstruction">

 

<action name="UnderConstruction">

  <result>/UnderConstruction.jsp</result>

</action>"

 

默认通配符

<action name="*" >

  <result>/{1}.jsp</result>

</action>

每个Action将会被映射到以自己名字明明的JSP上。

 
从CCD数据上报看wxHOOK的封号风险与规避 本文深入分析了微信CCD数据上报机制对wxHOOK的检测逻辑与封号风险,揭示了调试器路径暴露、非白名单DLL加载和内存校验失败等关键风险点。通过实战案例和规避方案,帮助开发者理解如何安全使用wxHOOK技术,避免封号风险,包括内存镜像欺骗、内核级隐蔽和硬件辅助方案等高级技巧。 阅读详情

相关推荐

基于FPGA的示波器设计

ADC 、DAC、FPGA、LCD液晶、示波器

FDL_AQ的博客 1万+

[转载]Struts2配置详解_配置Action

配置Action Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实现该接口中的execute()方法。 该方法如下: public String execute() throws Exception Struts2并不是要求所有编写的ac...

guo_yang的博客 592

手把手教你用X-AnyLabeling实现医学图像标注:从SAM模型选择到多边形优化全流程

本文详细介绍了如何使用X-AnyLabeling平台结合Med-SAM等专业模型实现医学图像的高效标注。从环境配置、模型部署到实战工作流,涵盖智能辅助标注、低对比度解决方案及团队协作方案,帮助医疗从业者大幅提升标注效率与质量。特别适合处理CT/MRI等医学影像的复杂标注需求。

weixin_29251131的博客 457

Action——Action的配置和作用

  Action——Action的配置和作用   大家在接触Struts2时或许听说过Action这个词,这里您将了解什么是Action,Action都有哪些作用,和一点关于Action的配置。   什么是Action        在Struts2中我们通常说的Action通常有这么3个含义。Action指Action类,比如咱们上个章节说到的HelloWorldAction就算是一...

wang28344的博客 1256

10-Oracle 23 ai Vector Search 概述和参数

企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation :RAG)功能,RAG能够将LLM的生成能力与知识库的精准资料库进行检索结合,将大模型部署在内部同时将私有的数据进行LLM的检索避免泄露企业专用的数据同时提高的准确性。于是如何将数据存入向量数据库以及向量查询等这些基本功能变得必备和重要。

远方的专栏 1295

从零开始:用LabVIEW和ModbusTCP协议,像搭积木一样连接Delta PLC

本文详细介绍了如何利用LabVIEW的图形化编程环境和ModbusTCP工业协议,快速连接Delta PLC实现数据通信。通过模块化配置和实战案例,指导读者无需编写复杂代码即可完成寄存器读取、多数据类型处理及系统监控,显著提升工业自动化项目的开发效率与部署速度。

n8m7b6v5c4的博客 697

Action的创建和配置

计应134(实验班) 李佳鸿 Action类—Struts组件 在RequestProcessor类预处理请求时,在创建了Action的实例后,就调用自身的processActionPerform()方法,该方法再调用Action类的execute()。 Action的execute()方法调用模型的业务方法,完成用户请求,然后根据执行结果把请求转发给其他合适的WEB组件。 创建支持多...

weixin_34074740的博客 250

【华为OD机考真题】- 构成的正方形数量(B卷-100分)(Java版)

🔔本文收录于「最新最全华为OD机试真题(Java版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!专栏所写题库均精心搜集于互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验所撰,欢迎订阅。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新

**My Coding Family** 1349

action的实现和配置

action的实现和配置 action的实现有三种方式 1. 不继承任何类的action 这种方式的好处是,我们写的Action类完全不和 struts2 框架发生耦合,代码不依赖 struts2 的类库。 当然,弊端也比较明显不能使用 struts2 中的某些功能。 2.实现Action接口 Struts2的Action接口中只定义了execute方法和几个预定义的常...

wscnlxx的博客 2115

GPT-5.5 是真好用!SCI论文润色与学术写作能力上全面提升,全流程指令已整理好!

输出规范:先输出完整的摘要正文,不添加额外说明,以Markdown表格形式提供中文自检说明,表格包含两列,列标题为“检查项”和“说明”,逐项说明是否已覆盖背景、研究问题、方法、结果及贡献,并简要评价摘要结构与表达是否符合要求,除上述内容外不输出其他信息。:你是一位(学术写作专家/期刊审稿人/论文评审专家),精通学术写作规范、逻辑结构、语法准确性及学术表达方式,你的任务是帮助提升论文的质量,包括语言润色、语法检查、逻辑优化和降低重复率。语言需简洁、正式、具有概括性,不展开具体论述,仅提供结构与要点说明。

智能AI让学术科研更容易 289

【x265编码器】章节6——x265的码率控制

对于CRF模式而言,右边这部分是是固定值m_rateFactorConstant,在初始化的时候确定,跟分辨率,qCompress这个参数是外部可设参数,默认值0.6,因此QP的选择只跟编码复杂度有关,跟码率无关,编码复杂度越高,QP值越高,因此可以一定程度上说CRF模式是恒定质量的编码模式。其中Complex表示当前帧的编码复杂度,x265中用lookahead模块计算的SATD作为衡量当前帧的复杂度,c为模型参数,qscale是率失真优化中的拉格朗日乘子,R为编码当前帧需要的比特数。

vcvdv123的博客 1万+

ajax 结合struts实现跨域访问

1.首先ajax的访问方法如下: $.getJSON("requestUrl?callback=?",function(data){ }); 2.struts中action  的写法如下: public String getBirthdayUser() { List list = userService.listAll(1, 100); Calendar cal = Ca

u010107162的专栏 1828

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Struts2 中的Actin配置

Struts2 中的Actin配置2008-07-30 13:03Package配置使用package可以将逻辑上相关的一组Action,Result,Intercepter等组件分为一组,Package有些类似对象,可以继承其他的Package,也可以被其他package继承,甚至可以定义抽象的Package。Namespace配置Namespace将ac

疯猫 823

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Struts2 Actin的扩展名的三种修改方法

方法一:       配置struts.xml 文件,在标签下加上如下内容:   方法二:       在struts.properties 文件中加入一行配置信息:struts.action.extension=aaa 方法三:      在web.xml文件中给filter加上init-param属性,代码如下所示 struts2 org.apache.struts2.di

mafly008的专栏 1389

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

struts2中往actin传递参数的方式

方式一:通过action的属性,在Action中定义你要传递的参数的名字,然后给这些属性设置get和set方法,你设置的这些属性的名字可以和传递的参数的名字不一样,但是你设置的get和set方法一定要和你要传递的参数的名字一样,当一般我们都会三者保持一致 方式二:域模型传递参数。将你要传递的参数封装成一个对象,然后再Action中声明这个对象,并且给这个对象设置get和set方法。如果你传递的参

qq_36471517的博客 188

struts in actin(Ted Husted 著)struts1 源码配置问题 记录

由于维护升级公司原来的struts1项目,所以要学习一下struts1相关的知识。在网上找了Ted Husted 著的struts in action(中文版)的书来看,导入intellij idea时调试了半天,后来才发现各个action的包名自动变成java.app,所以点sign in 后出错,root case 提示 LogonForm 没法创建,出现 classNotFoundExcep

zhichitiany2014的博客 330

Struts2跟freemarker的配置实例讲解(FTL文件解析)

Freemarker 简介 FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。  FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写  FreeMarker被

程序员♥乔布斯二世 2707

Struts2跟freemarker的配置实例讲解

Freemarker 简介       FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。     FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写  ...

代码也疯狂 211

Struts2总结

Struts2 1. 搭建Struts2的开发环境: 1)导入相应的jar包;6个 2)编写struts的配置文件;struts.xml 3)struts2在web中的启动配置;web.xml 2. 第一个struts2应用 3. actin属性的注入message是action中的变量 <paramname...

awp51086的博客 122

Struts2约定优于配置

1.1   需要的jar包struts2-convention-plugin-2.2.1.jar 1.2   设置Convention结果[result页面存放路径目录] struts-plugin.xml文件中: 默认配置所有的结果result页面都存储在WEB-INF/content下,通过设置struts.convention.result.path属性的值改变结果result页面

海阔凭鱼跃,天高任鸟飞 1507

Struts Action 与ActionSupport的区别

一、Action 跟 Actionsupport 的区别 当我们在写action的时候,可以实现Action接口,也可以继承Actionsupport这个类.到底这两个有什么区别呢? Action接口有: public static final java.lang.String SUCCESS = "success";  public static final java.lan

u010643307的博客 1275

struts2学习之十四----其他知识点

一、struts2探索学习完一定需要实际去运行,这样才能有更加深刻的理解! 1、几个主要的默认配置文1)struts-default.xml配置文件路径:struts2的strut2-core.jsr文件中2)default.properties路径:strut2-core.jar的org.apache.struts2包中   2、如何覆盖几个主要的默认文件的内容1)方法一:在自己写 的Strut...

whp0731 179

Struts2 Action扩展名的三种修改方法

 最近在做项目开发过程中犯了一个很低级的错误,在这里列举出来,供大家参考借鉴:我希望通过Url请求一个Action,最终通过服务器的处理能得到一个Json串,所以我在Url中体现这一特点,将action的扩展名写为xxaction.json,在web.xml 中将struts2过滤设置成了全部拦截,代码如下: &lt;filter&gt; &lt;filter-name&gt;st...

weixin_34240520的博客 105

struts1学习之--8、ActionForward的有关问题

ActionForward(导航器) ActionForward对象是配置对象,这些配置对象拥有独一无二的标识来允许他们按照name属性来检索,ActionForward对象封装了向前进的URL且被请求处理器用于识别目标视图。 Name:逻辑名称 Path:页面或者模块访问路径。 Redirect属性: False(no)-->表示转发,路径相对于当前的应用。 Ture(yes)-->

左岸人的博客 1126
上一篇: 第三章 Struts配置(第一节 struts.properties配置)
下一篇: 第三章 Struts配置(第三~七节其他配置)
struts2
博客等级 码龄19年 885粉丝 103原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值