轻松搞定Struts 2:三步走上手小入门

零、Struts 2是啥?

SSH、SSM、SSI如雷贯耳,Struts 2 —— 是的,就这样了。。。

一、Hello Struts2

1、核心包

2、struts.xml核心控制器配置

<filter>
<filter-name>Struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>Struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

二、Struts2核心

1、Struts2可以通过get/set自动获取/设置数据

这个很简单了,只需要通过IDE自动生成get-set属性就可以了。然后就可以在Jsp页面设置或者是获取属性。

2、继承ActionSupport类

确切的说,用户的自定义action可以不继承ActionSupport类(实现Action接口),不继承时只需要有一个方法,返回String即可。

但是,继承ActionSupport类有诸多好处:能够使用struts预设的返回值/字符串,比如SUCCESS、ERROR、INPUT等;还可以重写execute方法等;最重要的就是可以与Struts更有效的无缝结合在一起(安全上和稳定性上做了很好的预处理),方便开发。
当然需要牢记:在继承ActionSupport的情况下,必须有无参构造函数。

3、Action设置数据、接收参数

主要有属性驱动(FieldDriven) 和模型驱动(ModelDriven)两种方式。其中FD又分为基本数据类型属性和JavaBean类型属性。

4、struts.xml配置

①pageckage 配置
name 包名
extends 继承
namespace 包命名空间
abstract 抽象包
②action 配置
name action 名
class 处理类
method 方法
③分模块配置方法
<include file="" ></include>
④使用通配符*

<action name="*_*" class="com.ipragmatic.struts2.action.{1}Action" method="{2}">
	<result>/{1}_{2}_success.jsp</result>
</action>

  5、result配置

主要是配置返回结果类型type这个属性
①默认是dispatcher:内部转发;
②redirect:重定向;
③chain:链条;
④redirectAction:重定向到action;

上面4个常用,一定要掌握并分清楚区别!

其他几个可以了解:
freemarker:freemarker模版
httpheader:返回一个已配置好的HTTP 头信息响应
stream:将原始数据作为流传递回浏览器端,
velocity:呈现Velocity 模板
xslt 该XML:可以通过XSL 模板进行转换
plaintext:返回普通文本类容

6、动态方法调用(DMI)
使用动态方法调用需要开启:<constant name="struts.enable.DynamicMethodInvocation" value="true" />

三、值栈&OGNL

OGNL是对象图导航语言Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言。

1、OGNL访问ValueStack 数据
<s:property value="account" />

2、OGNL访问ActionContext 数据
访问某个范围下的数据要用#
#parameters 请求参数request.getParameter(...);
#request 请求作用域中的数据request.getAttribute(...);
#session 会话作用域中的数据session.getAttribute(...);
#application 应用程序作用域中的数据application.getAttribute(...);
#attr 按照page request session application 顺序查找值

3、OGNL访问静态方法和属性
访问静态方法或者静态属性的语法分别为:@类的路径@方法名,@类的路径@属性名,语法中类的路径,即包名+类名。
需要注意的是,访问静态方法需要开启:<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>

4、OGNL还可以访问复杂对象如:javaBean对象、访问集合对象、Map对象等。

四、其他(国际化、标签、拦截器)

标签

Struts2封装了一套标签,相比JSTL更强大。其核心标签根据功能可划分为:数据标签,控制标签,界面标签,其他标签。
数据标签
Property 标签:输出OGNL 表达式的值;
Set 标签:设置变量;
Bean 标签:定义javaBean 对象;
Date 标签:日期标签;
Debug 标签:调试标签;
Url&a 标签:超链接标签;
Include 标签:动态包含标签;

控制标签
Ifelse 标签:条件判断标签;
Iterator 标签:遍历标签;
Append 标签:叠加标签;
Generator 标签:分隔标签;
Merge 标签:组合标签;
Sort 标签:排序标签;
Subset 标签:截取标签;

界面标签
Form 标签:表单提交标签;
Text 标签:文本标签;
Radios 标签:单选标签;
Checkboxlist 标签:复选框标签;
Select 标签:下拉框标签;

其他标签
Updownselect 标签;
Optiontransferselect 标签;

国际化

国际化(Internationlization)是使软件实现对多语言的支持,Struts2的国际化设置方法很简单:
<constant name="struts.custom.i18n.resources" value="iPragmatic"></constant>
可以通过注入<s:text name=""></s:text>标签来访问国际化资源

时间: 2024-10-14 15:12:12

轻松搞定Struts 2:三步走上手小入门的相关文章

搞定 mybatis generator 三步走

基于idea 编辑器下maven项目使用mybatis generator快速生成持久层 添加插件:插件网址:http://www.mybatis.org/generator/running/runningWithMaven.html 编写配置文件: 运行mybatis generator: 详情如下: 在pom文件中添加插件 <build> <plugins> <plugin> <groupId>org.mybatis.generator</grou

搞定面试算法系列 —— 分治算法三步走

主要思想 分治算法,即分而治之:把一个复杂问题分成两个或更多的相同或相似子问题,直到最后子问题可以简单地直接求解,最后将子问题的解合并为原问题的解. 归并排序就是一个典型的分治算法. 三步走 和把大象塞进冰箱一样,分治算法只要遵循三个步骤即可:分解 -> 解决 -> 合并. 分解:分解原问题为结构相同的子问题(即寻找子问题) 解决:当分解到容易求解的边界后,进行递归求解 合并:将子问题的解合并成原问题的解 这么一说似乎还是有点抽象?那我们通过经典的排序算法归并排序来体验一下分治算法的核心思想.

轻松自我介绍三步走——曼陀罗思考法

自我介绍,员工培训的开场白,看似容易,有时候却容易让人头痛.好的开始是成功的一半,我们任何人都不能否认开场白在一场培训,一次会议中的的作用.好的自我介绍会给别人深刻的印象,但是有时候,我们的自我介绍不是“不知道说什么好”就是“啰啰嗦嗦半天不知道在说什么” 还记得<甄嬛传>中准格尔首领拿着价值连城的九连环给王公大臣,想要给在场人下马威的场景吗?一群精英,对着九连环,百思不得其解,没有一个人能够想到把九连环解开的方法,现场气氛一下子陷入僵局. 幼年的陇月公主,拿起九连环,直接扔到了地上,九连环就这

如何将CAD图纸转换成彩色,只需几步即可轻松搞定!

如何将CAD图纸转换成彩色,只需几步即可轻松搞定!在日常的工作中,建筑设计师们在编辑器完图纸后,基本图纸都是黑白的,这样不利用我们更好的进行查看,那就需要将CAD图纸的颜色进行转换,如何将CAD图纸转换成彩色,具体要怎么操作了?本篇教程就教教大家在迅捷CAD转换器中如何将CAD图纸转换成彩色只需几步的具体操作方法,想要了解的朋友就感觉来看看吧! 第一步:打开常用电脑,在电脑桌面中任意的打开一个浏览器,在浏览器的搜索框中搜索迅捷CAD转换器,然后鼠标点击进入官网,点击 下载安装最新版本的CAD转换

六步轻松搞定,自建APP不求人

随着互联网浪潮的席卷,越来越多的传统企业开始涉足互联网领域.无论是出于企业转型升级考虑,还是受市场整体环境的驱动,很多企业凭借某一领域的绝对优势,浩浩荡荡进军移动互联网领域,通过自建APP的方式,推出属于自己的移动端应用产品. 不少企业在探寻如何自建APP的过程中,遇到的第一个决策性难题就是:自建APP开发团队还是外包APP建设?其实对于大多数企业而言,由于企业内部组织架构设置问题,尚没有配备完善的自建APP开发团队,同时财政预算有限,难以承担整体自建APP工作.对于这类中小型企业而言,如何能够

12步轻松搞定python装饰器

12步轻松搞定python装饰器 呵呵!作为一名教python的老师,我发现学生们基本上一开始很难搞定python的装饰器,也许因为装饰器确实很难懂.搞定装饰器需要你了解一些函数式编程的概念,当然还有理解在python中定义和调用函数相关语法的一些特点. 我没法让装饰器变得简单,但是通过一步步的剖析,我也许能够让你在理解装饰器的时候更自信一点.因为装饰器很复杂,这篇文章将会很长(自己都说很长,还敢这么多废话blablabla...前戏就不继续翻译直接省略了) 1. 函数 在python中,函数通

深入浅出 Python 装饰器:16 步轻松搞定 Python 装饰器

Python的装饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西.虽然好像,他们要干的事都很相似--都是想要对一个已有的模块做一些"修饰工作",所谓修饰工作就是想给现有的模块加上一些小装饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小装饰(小功能)侵入到原有的模块中的代码里去.但是OO的Decorator简直就是一场恶梦,不信你就去看看wikipedia上的词条

怎么把PDF文件转换成Word?三招教你轻松搞定

PDF和Word两个文件之间,相互转换是在我们的工作中经常需要用到的,也曾经是很多职场新人的困扰,很多人都想知道怎么把PDF文件转换成Word?今天呢就来给大家分享三个简单的方法,只需三招就能轻松搞定. 方法1:打开方式为Word 怎么把PDF文件转换成Word?这个方法其实很简单的,只需要点击PDF文档,选择打开方式为Word,利用Word打开即可.步骤:点击PDF文件--右击鼠标--选择[打开方式]--点击Word:方法2:专业转换器 如果在觉得通过Word打开方式不太好用的话,可以使用专业

春节过后就是金三银四求职季,分享几个Java面试妙招,轻松搞定HR!

春节过后就是金三银四,分享几个Java面试妙招,轻松搞定HR!2020年了,先祝大家新年快乐!今年IT职位依然相当热门,特别是Java开发岗位.软件开发人才在今年将有大量的就业机会.春节过后,金三银四求职季到来,下面教你8个"妙招",希望能帮你顺利面试成功.1.知道如何写算法如果你申请的是软件工程师的工作,那么显然你需要知道如何编码.写代码脚本其实与写算法来解决软件问题略有不同.用人单位可能会提出这样的问题,"写一个算法,可以从链表中找到某个元素,并将此元素挪到列表末尾.&q