nullStruts2标签库Struts2标签库Struts2标签库分类Struts2标签库分类Struts2标签库中的标签,不依赖于任何表现层技术
Struts2标签分类
UI
表单标签
非表单标签
AJAX标签
非UI
控制标签
数据标签ValueStackValueStackStruts 2要依赖于ValueStack对象
Strut 2的Action类通过属性可以获得所有相关的值,如:
请求参数
Action配置参数
要获得这些参数值,我们要做的唯一一件事就是在Action类中声明与参数同名的属性
在Struts 2调用Action类的Action
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
(默认是execute方法)之前,就会为相应的Action属性赋值。
当Struts 2接收到一个.action的请求后
先建立Action类的对象实例,但并不会调用Action方法
先将Action类的相应属性放到ValueStack对象的顶层节点(ValueStack对象相当于一个栈)
所有的属性值都设置为默认的值,如String类型的属性值为null,int类型的属性值为0等程序举例程序举例一个bean
一个Action类ActionContext:可以看作是一个容器,它存放的是Action在执行时需要用到的对象程序举例程序举例一个JSP页面
配置struts.xml
启动tomcat,在浏览器地址中输入OGNL表达式OGNL表达式上例中的结果,就是ActionContext中保存的两个对象,valueStackAction和newProduct通过OGNL表达式得到的结果
访问对象的时候前面加“#”OGNL表达式访问内置对象OGNL表达式访问内置对象Struts2提供了一些内置对象,访问这些对象的时候需要加#
parameters:用于访问http请求参数,通过#parameters.name或者#parameters[‘name’]访问请求参数
request:用于访问HttpServletRequest的属性,通过#request.name或者#request[‘name’]访问
session:用于访问HttpSession的属性,通过#session.name或者#session[‘name’]访问
application:用于访问ServletContext的属性,通过#applipcation.name或者#applipcation [‘name’]访问
attr:用于访问PageContext的属性,通过#attr.name或者#attr[‘name’]访问访问参数举例访问参数举例
增加java代码,需要增加:控制标签控制标签if | else if | else标签
iterator标签
append标签
generator标签
merge标签
subset标签
sort标签
If | else if | else标签If | else if | else标签创建Action类IteratorIteratoriterator
表达数组,集合迭代
属性value:指定被迭代集合
属性id:表达集合中当前元素
属性status:指定该集合中的iteraterStatus对象
在迭代集合的每个元素的时候,都会有一个描述当前状态的IteratorStatus对象被放到ValueStack栈顶,通过iteratorStatus对象,可以获得集合当前的各种状态信息iterator举例iterator举例
jsp显示结果:OGNL表达式定义集合iterator举例iterator举例value属性可以扫描Action类的集合属性
新建IteratorAction
struts.xml中:null修改iterator.jsp
察看结果:iteratorStatusiteratorStatusIteratorStatus包括如下几个方法:
getCount:已经迭代的集合元素个数
getIndex:当前集合元素的索引
isEven:当前元素索引是否为偶数
isOdd:当前元素索引是否位奇数
isFirst:是否为第一个元素
isLast:是否为最后一个元素修改jsp页面修改jsp页面各属性对应值如下各属性对应值如下iterator对Map对象iterator对Map对象iterator同样可以处理Map类型对象
将key-value视为一个元素
有几个key-value,就循环几次或者或者append标签append标签append标签:
用于合并多个集合为一个集合
使用append标签需要指定id属性,用于生成新的集合名字
使用
子标签指定需要合并的集合
回到if举例回到if举例generator标签generator标签generator标签
将指定字符串按照指定分隔符转化为多个临时子串或理解为子串集合
转化后的子串可以使用iterator标签输出
子串集合保存在ValueStack顶端,使用结束后,被移出
5个属性
separator:指定分隔符
val:指定被分割的字符串
count:指定生成的子串集合长度
converter:指定转换器
id:指定生成的集合,并放入pageContext举例:举例:
本例中未包含id属性使用converter使用converter通过count限制集合大小,通过id将集合保存在PageContext中,提供转换器将集合中的字串转换成StringObject配置action,生成jsp配置action,生成jsp
jsp页面merge标签merge标签merge标签
功能与append标签类似
同样拥有属性标签subset标签subset标签subset标签
用于获得集合子集
4个属性
count:指定子集个数
source:指定源集合
start:指定子集的第一个元素在源集合位置
decider:指定规则对象,规则类必须 实现SubsetIteratorFilter.Decider接口(标签后举例)举例举例sort标签sort标签sort标签:
对指定的集合元素进行排序
需要实现java.util.Comparator接口类
两个属性
comparator:指定排序规则类的对象实例
source:指定被排序的集合
标签后举例数据标签数据标签action标签
bean标签
date标签
debug标签
include标签
set标签
push标签
action标签action标签action标签:
在jsp页面中访问调用Action
action标签的属性:
name:指定被调用的action名字
id:指定要访问的action的对象实例
namespace:指定action的命名空间
executeResult:指定是否将结果页包含在目前页中
true包含和false不包含
ignoreContextParams:指定是否将当前页的请求参数传递给action
flush:action标签结束后是否刷新缓存举例举例Action类
配置Struts.xmlnullsucc.jsp页面,原跳转页面
通过标签的jsp页面null
访问testjspaction.jsp的时候,包含了一个名称为string的请求参数bean标签bean标签bean标签
创建一个JavaBean对象实例
使用标签设置属性
bean标签相当于java中的new关键字
两个属性
name:指定要创建对象实例的JavaBean的实现类
id:指定实例化后的JavaBean对象名称
对象实例被放入StackContext
nullJavaBean
null在bean标签内输出属性
在bean标签外使用bean对象实例,需要指定id
回溯回溯subset标签decider属性
指定截取类在jsp页面中在jsp页面中通过bean标签,指定KeyDecider的对象实例回溯回溯指定排序规则类
jsp页面:jsp页面:
操作sort新集合的标签,必须在sort标签内date标签date标签date标签:
用于格式化输出java.util.Date类型值、计算时间差
四个属性
name:指定日期值
format:指定用来格式化日期的格式化字符串
nice:true则输出指定日期与当前时差,false则输出格式化后的日期
id:引用被格式化后的日期的idjsp页面jsp页面结果页面结果页面debug标签debug标签debug标签
生成debug链接,展现各种服务器端对象信息include标签include标签include标签
用于在当前页面包含另外的Web资源
两个属性:
value:指定包含的Web资源的URL
id:指定id引用
css.jsp
include.jspset标签set标签set标签
用于将数据保留在某个指定范围
四个属性
name:指定新的变量名字
value:指定赋值
scope:指定保存变量范围
id:指定引用标签的id
nullpush标签push标签push标签:
将指定值放入到ValueStack栈的顶端
两个属性
value:指定需要放入ValueStack顶端的值
id:指定idurl标签url标签url标签:
用于生成一个url地址(略)表单标签表单标签所有的表单处理类,都继承了org.apache.Struts2.componets.UIBean类
form、submit、resetform、submit、reset(略)checkboxlist标签checkboxlist标签checkboxlist标签:
用于生成多个复选框
三个属性:
list:指定要生成的复选框的数据,该属性值,可以是list,array,map等
listKey:如果list属性值是对象数组,该属性表示对象中作为key的属性。如:product.id,stu.id
listValue:如果list属性值是对象数组,该属性表示对象中作为value的属性
如果list属性是Map对象,提交的请求参数值为对应元素的key
如果list属性的值为对象数组,则提交请求的是listKey属性checkboxlistcheckboxlist建立如下jsp页面
代码如下代码如下
其中,兴趣爱好为数组或list对象,j2eeservers为Map对象,cities为对象数组建立city及cities数组类建立city及cities数组类InvestigateAction类InvestigateAction类配置action配置action生成结果页investigate.jsp生成结果页investigate.jspWeb结果及console结果Web结果及console结果comboboxcomboboxcombobox用于生成一个当行文本框和下拉列表的组合。
真正提交的请求参数是文本框中的值
通过list属性来指定下拉列表中的数据源
数据源可以是数组、List、Map、对象数组
当list属性中为一个数组或者List对象的时候,下拉框中的值会被赋给单行文本框
当list属性中为一个Map对象或者对象数组,则当行文本框中被赋key值combobox.jspcombobox.jspcombobox.jspcombobox.jspselect标签select标签用于生成一个列表框
list属性指定集合
listKey属性指定列表框选项中的key
listValue属性指定列表框中显示的内容
multiple属性指定列表框是否允许多选select.jspselect.jspselect效果select效果optgroup标签optgroup标签本标签只能作为select的子标签使用,用于生成下拉列表框选项组
optgroup也需要指定list,listKey和listValue
label属性,选项组名optgroup.jspoptgroup.jsp效果效果radio标签radio标签与checkboxlist标签相似
区别仅在于radio标签生成的是单选框radio.jspradio.jsp效果效果非表单标签非表单标签fielderror
actionerror
actionmessage非表单标签用处非表单标签用处用来生成一些可视化信息
如:ErrorAction类ErrorAction类配置struts.xml配置struts.xml效果效果