Struts2 convention plugin

本文详细介绍了Struts2 Convention插件的配置方法及其提供的各种常量设置,包括如何通过这些配置来替代传统的struts.xml文件,从而简化开发流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 零配置≠无配置。

  2. 约定优于配置。

  3. Struts2-convention-plugin.jar位于struts2/lib目录下。

  4. 它提供基于annotation(注解)的方式来代替struts.xml。

  5. 在该jar包下的struts-plugin.xml是对该插件的各种基本配置。它继承于struts-default。

如果需要改变配置,可以在struts.xml中进行常量声明和赋值来替换默认配置。

  1. 常量说明(以下常量均为默认配置):
<!-- 结果资源所在路径,也就是返回的页面路径 -->

<constant name="struts.convention.result.path" value="/WEB-INF/content/"/>



<!-- 搜索的Action资源包路径,无论层级,例如package.action,多项以逗号隔开-->

<constant name="struts.convention.package.locators" value="action,actions,struts,struts2"/>



<!-- 指定哪些包不搜索 -->

<constant name="struts.convention.exclude.packages" value="org.apache.struts.*"/>



<!-- 是否将返回的字符串作为资源名的一部分,例如MyTestAction中方法返回“abc”,如果设为true,则视图资源名为         my-test-abc.jsp,false则为my-test.jsp -->

<constant name="struts.convention.result.flatLayout" value="true"/>



<!-- 类名最后的组成部分,比如设置成qqq,则MyTestqqq将视为action,而MyTest则不是,访问时  会截去这个部分 -->

<constant name="struts.convention.action.suffix" value="Action"/>



<!-- 是否不扫描类,默认false即要扫描,设为true则所有访问无效(不排除未知情况) -->

<constant name="struts.convention.action.disableScanning" value="false"/>



<!-- 始终创建action映射,即使没有@Action被发现(具体情况不明) -->

<constant name="struts.convention.action.mapAllMatches" value="false"/>



<!-- 是否检查类是不是实现了com.opensymphony.xwork2.Action接口,默认为true,即只要实现了此   接口的类为被视为     Action,设为false则不进行检查,无论是否实现都会无视 -->

<constant name="struts.convention.action.checkImplementsAction" value="true"/>



<!-- 设置默认的父包 -->

<constant name="struts.convention.default.parent.package" value="convention-default"/>



<!-- 是否将Action类名转换成小写,默认true,例如MyTest访问的url名为my-test,设为false,则    为My-Test -->

<constant name="struts.convention.action.name.lowercase" value="true"/>



<!-- 名字分割符,即MyTest访问名为my-test,默认对应的页面为my-test-success.jsp -->

<constant name="struts.convention.action.name.separator" value="-"/>



<!-- 是否禁用包扫描,对应struts.convention.package.locators设置 -->

<constant name="struts.convention.package.locators.disable" value="false"/>



<!-- 设置包扫描的结构,默认为空,例如com.jd.web就只会扫描项目中此结构包下的 子包,忽略其他包 -->

<constant name="struts.convention.package.locators.basePackage" value=""/>



<!-- 默认返回结果类型 -->

<constant name="struts.convention.relative.result.types"value="dispatcher,velocity,freemarker"/>



<!-- 是否使用 / 作为重定向标示符,默认true,@Result(location="/test.jsp") 则会在server/项目名/这个路径下找test.jsp,     不加 / 则会在struts.convention.result.path这个常量配置的路径下找,若设为false则 / 无效-->

<constant name="struts.convention.redirect.to.slash" value="true"/>



<!-- 不是很清楚,测试结果为:设置成false则报没有no action mapped,应该是默认是否执行execute()方法 -->

<constant name="struts.convention.action.alwaysMapExecute" value="true"/>



<!-- 设定是否一直在最后一个斜线之前的任何位置选定namespace,测试结果为无任何影响,情况不明 -->

<constant name="struts.mapper.alwaysSelectFullNamespace" value="true"/>



<!-- 官方只说明在jboss下需要设置,情况不明 -->

<constant name="struts.convention.exclude.parentClassLoader" value="true" />

<constant name="struts.convention.action.fileProtocols" value="jar" />



<!-- 是否自动重新加载action -->

<constant name="struts.convention.classes.reload" value="false" />

7. Annotation(注解)

@Action(String value)

用来代替类名的访问名,例如MyTest类,在类级别上@Action(“abc”),则访问的action名为abc,而不是默认的my-test,此注解也可写在方法上,定义为访问该方法的action名。此注解受struts.convention.redirect.to.slash影响。返回视图为abc.jsp,忽略方法返回的字符串。

@Actions

包含一个@Action数组

格式:@Action({@Action() , @Action()})

@Result

定义方法返回的结果类型,参数,资源路径,此注解必须写在类级别上。

格式:@Result(name=”” , location=”” , type=”” , params={“”,”“})

name对应方法返回的字符串,location对应返回资源的路径,type对应返回资源类型

params对应返回结果的参数,格式params={“key0”,”value0”,”“key1,”value1”….”keyN”,”valueN”}

@Results

包含一个@Result数组

格式:参照@Actions

@Namespace

指定action的访问路径,会替换掉默认package的路径。

格式:@Namespace(String value)

例如:假设MyTest默认Namespace为/test,其访问路径为xxx/test/my-test。若设置为@Namespace(“abc”), 则访问路径为/abc/my-test。

注意:默认情况下action的访问路径必须和返回视图资源路径对应。

例如:假设默认搜索xxx.xxxx.xxx.web包下的action,MyTest类在web.action.test包下,则MyTest类中 方法默认情况返回搜索视图的路径为/WEB-INF/content/action/test/xxx.jsp

电动汽车数据集:2025年3K+记录 真实电动汽车数据:特斯拉、宝马、日产车型,含2025年电池规格和销售数据 关于数据集 电动汽车数据集 这个合成数据集包含许多品牌和年份的电动汽车和插电式车型的记录,捕捉技术规格、性能、定价、制造来源、销售和安全相关属性。每一行代表由vehicle_ID标识的唯一车辆列表。 关键特性 覆盖范围:全球制造商和车型组合,包括纯电动汽车和插电式混合动力汽车。 范围:电池化学成分、容量、续航里程、充电标准和速度、价格、产地、自主水平、排放、安全等级、销售和保修。 时间跨度:模型跨度多年(包括传统和即将推出的)。 数据质量说明: 某些行可能缺少某些字段(空白)。 几个分类字段包含不同的、特定于供应商的值(例如,Charging_Type、Battery_Type)。 各列中的单位混合在一起;注意kWh、km、hr、USD、g/km和额定值。 列 列类型描述示例 Vehicle_ID整数每个车辆记录的唯一标识符。1 制造商分类汽车品牌或OEM。特斯拉 型号类别特定型号名称/变体。型号Y 与记录关联的年份整数模型。2024 电池_类型分类使用的电池化学/技术。磷酸铁锂 Battery_Capacity_kWh浮充电池标称容量,单位为千瓦时。75.0 Range_km整数表示充满电后的行驶里程(公里)。505 充电类型主要充电接口或功能。CCS、NACS、CHAdeMO、DCFC、V2G、V2H、V2L Charge_Time_hr浮动充电的大致时间(小时),上下文因充电方法而异。7.5 价格_USD浮动参考车辆价格(美元).85000.00 颜色类别主要外观颜色或饰面。午夜黑 制造国_制造类别车辆制造/组装的国家。美国 Autonomous_Level浮点自动化能力级别(例如0-5),可能包括子级别的小
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值