struts2视图result的种类和常量总结(转载)

在前面<action>元素都配置了相应的属性,struts2给某些属性提供了默认值。如果没有为action指定class,默认是ActionSupport;如果没有为action指定method,默认执行action中的execute() 方法;如果没有指定result的name属性,默认值为success。因此,有了这些默认值,当在前面的应用中,这些属性都不配置,然后更改一下JSP页面的内容,把输出message的EL表达式删掉。再次运行程序,发现仍然能显示出修改后的页面。查看ActionSupport的源代码,可以发现其中的execute方法返回的就是"success"字符串。
以上是关于action元素的配置,result元素配置类似于struts1中的forward,但struts2中提供了多种结果类型,常用的类型有:dispatcher(默认值)、redirect、redirectAction和plainText四种类型。其中默认值dispatcher就是前面用到的,这种方式是服务器内部的转发。struts2提供了一个比较有用的功能:在result中还可以使用${属性名}表达式访问action中的属性,表达式里的属性名对应action中的属性。如下:<result type="redirect">/view.jsp?id=${id}</result>,这种方式的重定向式浏览器重定向,相当于重新发一个新的请求,并且在重定向时,EL表达式中id的值能够从action获取到。另外一个重定向是redirectAction,如果重定向的action在同一个包下,就就可以直接写上从定向目的地的action的名字。如果是不同的包下,就需要通过两个参数来指定action的名字和名称空间的值。同一个包下:
<result type="redirectAction">helloworld</result>
如果重定向的action在别的命名空间下:
<result type="redirectAction">
<param name="actionName">helloworld</param>
<param name="namespace">/test</param>
</result>
最后一种类型就是plaintext,它用来显示原始文件内容,例如:当我们需要原样显示jsp文件源代码 的时候,我们可以使用此类型,需要注意的是一定要指定源文件的编码方式,否则显示的页面将出现乱码:
<result name="source" type="plainText ">
<param name="location">/hello.jsp</param>
<param name="charSet">UTF-8</param>
</result>
当多个action中都使用到了相同视图,这时就应该把result定义为全局视图。全局视图的定义方式是将试图定义放在<global-results>中就可以了,但是只要只能是同一个包下action才能跳转到全局视图。如果要不同的包也能公用全局视图,可以专门为这些公用的全局试图定义一个包,注意这个包要继承struts-default,然后其需要用到这个全局视图的包再继承这个公共的包。action元素中除了定义视图元素外,还可以用来往Action类中的属性注入相应的值。所用的元素就是<param>,该元素的name属性需要和相应Action类的属性一致,并且要提供setter方法。
前面都是默认使用.action后缀访问Action。其实在struts2中,默认后缀是可以通过常量struts.action.extension进行修改的,例如:我们可以配置Struts 2只处理以.do为后缀的请求路径:<constant name="struts.action.extension" value="do"/>。如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号隔开。除了这个常量外,还有其它一些常用的常量,总结如下:
1.指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法和freemarker、velocity的输出:<constant name="struts.i18n.encoding" value="UTF-8"/>
2.该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号隔开:<constant name="struts.action.extension" value="do,action"/>
3.设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭:<constant name="struts.serve.static.browserCache" value="false"/>
4.当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开:<constant name="struts.configuration.xml.reload" value="true"/>
5.开发模式下使用,这样可以打印出更详细的错误信息:<constant name="struts.devMode" value="true" />
6.默认的视图主题:<constant name="struts.ui.theme" value="simple" />
7.与spring集成时,指定由spring负责action对象的创建:<constant name="struts.objectFactory" value="spring" />
8.该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为false:<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
9.上传文件的大小限制:<constant name="struts.multipart.maxSize" value=“10701096"/>
因为常量可以在下面多个配置文件中进行定义,如果在多个文件中配置了同一个常量,则后一个文件中配置的常量值会覆盖前面文件中配置的常量值,struts2加载常量的搜索顺序:struts-default.xml、struts-plugin.xml struts.xml、struts.properties、web.xml。

这些常量的配置是非常有用的,比如第5个常量,当配置成true以后,在开发中能大大的提高效率。处理错误时间也变短。当然了在开发中需要配置,但是在产品发布的时候这个配置就要取消了。第二个常量的配置可以按开发人员的习惯来命名后缀。如果用到文件上传操作,第9个配置就会起作用了,而且在程序中可以动态改变,减少了开发人员的工作量。

内容概要:本文深入探讨了Kotlin语言在函数式编程跨平台开发方面的特性优势,结合详细的代码案例,展示了Kotlin的核心技巧应用场景。文章首先介绍了高阶函数Lambda表达式的使用,解释了它们如何简化集合操作回调函数处理。接着,详细讲解了Kotlin Multiplatform(KMP)的实现方式,包括共享模块的创建平台特定模块的配置,展示了如何通过共享业务逻辑代码提高开发效率。最后,文章总结了Kotlin在Android开发、跨平台移动开发、后端开发Web开发中的应用场景,并展望了其未来发展趋势,指出Kotlin将继续在函数式编程跨平台开发领域不断完善发展。; 适合人群:对函数式编程跨平台开发感兴趣的开发者,尤其是有一定编程基础的Kotlin初学者中级开发者。; 使用场景及目标:①理解Kotlin中高阶函数Lambda表达式的使用方法及其在实际开发中的应用场景;②掌握Kotlin Multiplatform的实现方式,能够在多个平台上共享业务逻辑代码,提高开发效率;③了解Kotlin在不同开发领域的应用场景,为选择合适的技术栈提供参考。; 其他说明:本文不仅提供了理论知识,还结合了大量代码案例,帮助读者更好地理解实践Kotlin的函数式编程特性跨平台开发能力。建议读者在学习过程中动手实践代码案例,以加深理解掌握。
内容概要:本文深入探讨了利用历史速度命令(HVC)增强仿射编队机动控制性能的方法。论文提出了HVC在仿射编队控制中的潜在价值,通过全面评估HVC对系统的影响,提出了易于测试的稳定性条件,并给出了延迟参数与跟踪误差关系的显式不等式。研究为两轮差动机器人(TWDRs)群提供了系统的协调编队机动控制方案,并通过9台TWDRs的仿真实验验证了稳定性综合性能改进。此外,文中还提供了详细的Python代码实现,涵盖仿射编队控制类、HVC增强、稳定性条件检查以及仿真实验。代码不仅实现了论文的核心思想,还扩展了邻居历史信息利用、动态拓扑优化自适应控制等性能提升策略,更全面地反映了群体智能协作性能优化思想。 适用人群:具备一定编程基础,对群体智能、机器人编队控制、时滞系统稳定性分析感兴趣的科研人员工程师。 使用场景及目标:①理解HVC在仿射编队控制中的应用及其对系统性能的提升;②掌握仿射编队控制的具体实现方法,包括控制器设计、稳定性分析仿真实验;③学习如何通过引入历史信息(如HVC)来优化群体智能系统的性能;④探索中性型时滞系统的稳定性条件及其在实际系统中的应用。 其他说明:此资源不仅提供了理论分析,还包括完整的Python代码实现,帮助读者从理论到实践全面掌握仿射编队控制技术。代码结构清晰,涵盖了从初始化配置、控制律设计到性能评估的各个环节,并提供了丰富的可视化工具,便于理解分析系统性能。通过阅读实践,读者可以深入了解HVC增强仿射编队控制的工作原理及其实际应用效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值