struts2 示例struts.xml解析

本文详细解析了Struts2框架核心配置文件struts.xml的内容,包括配置常量、包定义、拦截器配置及Action配置等关键信息。
原创 struts2 示例struts.xml解析收藏

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<!-- START SNIPPET: xworkSample -->
<struts>

<!-- Some or all of these can be flipped to true for debugging -->
<--配置常量-->
<constant name="struts.i18n.reload" value="false" />
//设置开发模式
<constant name="struts.devMode" value="true" />
//设置配置文件重载
<constant name="struts.configuration.xml.reload" value="false" />
//设置国际化的basename
<constant name="struts.custom.i18n.resources" value="globalMessages" />
<constant name="struts.action.extension" value="action,," />

<constant name="struts.codebehind.defaultPackage" value="person" />
<constant name="struts.freemarker.manager.classname" value="customFreemarkerManager" />
<constant name="struts.serve.static" value="true" />
<constant name="struts.serve.static.browserCache" value="false" />



<!--包含其他的配置文件-->

<include file="struts-chat.xml" />

<include file="struts-interactive.xml" />

<include file="struts-hangman.xml" />

<include file="struts-tags.xml"/>

<include file="struts-validation.xml" />

<include file="struts-actionchaining.xml" />

<include file="struts-ajax.xml" />

<include file="struts-fileupload.xml" />

<include file="struts-person.xml" />

<include file="struts-wait.xml" />

<include file="struts-jsf.xml" />

<include file="struts-token.xml" />

<include file="struts-model-driven.xml" />

<include file="struts-integration.xml" />

<include file="struts-filedownload.xml" />

<include file="struts-conversion.xml" />

<include file="struts-freemarker.xml" />

<include file="struts-tiles.xml" />

<include file="struts-xslt.xml" />



<!--定义默认的包,struts-default再struts2-core-2.0*.jar下-->

<package name="default" extends="struts-default">

<!--培植拦截器-->
<interceptors>
<interceptor-stack name="crudStack">
<interceptor-ref name="checkbox" />
<interceptor-ref name="params" />
<interceptor-ref name="staticParams" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>

<default-action-ref name="showcase" />

<!--配置action-->

<action name="showcase">
<result>showcase.jsp</result>
</action>

<action name="viewSource" class="org.apache.struts2.showcase.source.ViewSourceAction">
<result>viewSource.jsp</result>
</action>

<action name="date" class="org.apache.struts2.showcase.DateAction" method="browse">
<result name="success">/date.jsp</result>
</action>

</package>



<!--配置包skill,继承包default,定义包空间/skill-->

<package name="skill" extends="default" namespace="/skill">
<default-interceptor-ref name="crudStack"/>

<!--配置Action-->

<action name="list" class="org.apache.struts2.showcase.action.SkillAction" method="list">
<result>/empmanager/listSkills.jsp</result>
<interceptor-ref name="basicStack"/>
</action>
<action name="edit" class="org.apache.struts2.showcase.action.SkillAction">
<result>/empmanager/editSkill.jsp</result>
<interceptor-ref name="params" />
<interceptor-ref name="basicStack"/>
</action>
<action name="save" class="org.apache.struts2.showcase.action.SkillAction" method="save">
<result name="input">/empmanager/editSkill.jsp</result>
<result type="redirect">edit.action?skillName=${currentSkill.name}</result>
</action>
<action name="delete" class="org.apache.struts2.showcase.action.SkillAction" method="delete">
<result name="error">/empmanager/editSkill.jsp</result>
<result type="redirect">edit.action?skillName=${currentSkill.name}</result>
</action>
</package>

<!--定义包employee,继承包default,包空间/employee-->

<package name="employee" extends="default" namespace="/employee">

//定义默认拦截器
<default-interceptor-ref name="crudStack"/>

<action name="list" class="org.apache.struts2.showcase.action.EmployeeAction" method="list">
<result>/empmanager/listEmployees.jsp</result>
<interceptor-ref name="basicStack"/>
</action>



//在配置文件中使用通配符
<action name="edit-*" class="org.apache.struts2.showcase.action.EmployeeAction">
<param name="empId">{1}</param>
<result>/empmanager/editEmployee.jsp</result>
<interceptor-ref name="crudStack"><param name="validation.excludeMethods">execute</param></interceptor-ref>
</action>
<action name="save" class="org.apache.struts2.showcase.action.EmployeeAction" method="save">
<result name="input">/empmanager/editEmployee.jsp</result>
<result type="redirect">edit-${currentEmployee.empId}.action</result>
</action>
<action name="delete" class="org.apache.struts2.showcase.action.EmployeeAction" method="delete">
<result name="error">/empmanager/editEmployee.jsp</result>
<result type="redirect">edit-${currentEmployee.empId}.action</result>
</action>
</package>

</struts>

<!-- END SNIPPET: xworkSample -->
【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值