,,struts2标签总结_动力节点Java学院整理

,,struts2标签总结_动力节点Java学院整理

本文主要详细总结了struts2标签的用法和学习资料。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

我们先来看看Struts2标签的分类。然后分类总结。

因为控件标签应用广泛,所以放在前面。好了,先看控制标签。

一、控制标签,JSTL应该是我们大家都用的。其实Struts2的控制标签和那个差不多,主要是作为el表达式不能满足的东西的补充。下面简单介绍一下:

1.if … else if … else,用于控制所选输出的标签;

span style=' font-size:18px;'html xmlns=' http://www . w3 . org/1999/XHTML '

标题:如果标签测试/标题

/头

身体

!-在堆栈上下文中定义一个年龄属性,值为29-

s:set name='age' value='29'/

!-如果堆栈上下文中的年龄属性大于60-

学生:如果测试=' #年龄60 '

老年人

/s:如果

!-如果堆栈上下文中的年龄属性大于35-

学生:elseif test='#age35 '

中年男子

/s:elseif

!-如果堆栈上下文中的年龄属性大于15-

学生:elseif test='#age15 '

年轻人

/s:elseif

学生:否则

青少年

/s:否则

/body

/html

/span

2 .追加:用于将多个集合拼接成一个新集合;

span style=' font-size:18px;'html xmlns=' http://www . w3 . org/1999/XHTML '

使用标题标签s:append拼接集合和地图/标题。

/头

身体

!-使用append将列表和映射集拼接在一起。

新集合实际上是一个地图集合,它的名字是newList -

s:append var='newList '

s:param value='#{'Java':'ljh ',

C#':'lsz'}' /

s:param value='#{'0629 ',

'0404'}' /

/s:追加

表格边框='1 '宽度='280 '

!-使用迭代器迭代新列表集-

s:迭代器值='#newList '状态='st '

tr s:if test='#st.odd '

style=' background-color:# bbbbbb '/s:if

tds:属性值='key'//td

tds:属性值='value'//td

/tr

/s:迭代器

/表格

/body

/html

/span

3.generator:是一个字符串解析器,用来将一个字符串解析成一个集合;

span style=' font-size:18px;'html xmlns=' http://www . w3 . org/1999/XHTML '

使用title s:generator生成集合/标题。

/头

身体

表格边框='1 '宽度='240 '

!-使用generator标记将指定的字符串解析到迭代器集合中。

在generator标记中,结果列表集位于ValueStack的顶部

s:生成器值=''Java

,C#,

c ' '分隔符=','

!-不指定要迭代的集合,直接迭代ValueStack顶部的集合-

s:迭代器状态='st '

tr s:if test='#st.odd '

style=' background-color:# bbbbbb '/s:if

tds:属性//td

/tr

/s:迭代器

/s:生成器

/表格

/body

/html/span

4 .迭代器:是迭代器,用来迭代输出一个集合。这个比较用的是ha,前面都有,就不多举例了;

5.merge:也用于将多个集合拼接成一个新集合,但与append不同。追加是为了按顺序拼接集合。合并是第一集的第一,第二集的第一…第一集的第二,第二集的第二…;

span style=' font-size:18px;'html xmlns=' http://www . w3 . org/1999/XHTML '

使用title s:merge标签迭代地图/标题。

/头

身体

s:merge id='newList '

s:param value='#{'Java':'ljh ',

C#':'lsz'}' /

s:param value='#{'0629 ',

'0404'}' /

/s:合并

表格边框='1 '宽度='320 '

s:迭代器值='#newList '状态='st '

tr s:if test=' # ST . odd ' style=' background-color:# bbbbbb '/s:if

tds:属性值='key'//td

tds:属性值='value'//td

/tr

/s:迭代器

/表格

/body

/html/span

6 .排序:该标签用于对集合进行排序;

span style=' font-size:18px;'html xmlns=' http://www . w3 . org/1999/XHTML '

使用标题:排序对收集要素/标题进行排序

/头

身体

!-定义一个比较器实例-

s:bean var=' my comparator ' name=' org . ljh . app . util . my comparator '/

!-使用自定义排序规则对目标集进行排序-

s:sort source='{'Java '

,' C# '

,' C '

,' Ajax '

,' XML'} '

比较器='#mycomparator '

var='sortedList'/

页面范围的输出sortedList属性:br/

${pageScope.sortedList}

表格边框='1 '宽度='300 '

!-在page-的范围内迭代sortedList属性

s:iterator status=' ST ' value=' # attr . sorted list '

tr s:if test='#st.odd '

style=' background-color:# bbbbbb '/s:if

tds:属性//td

/tr

/s:迭代器

/表格

/body

/html/span

span style=' font-size:18px;'公共类MyComparator实现比较器

{

//确定两个元素大小的方法

公共int比较(对象元素1,对象元素2)

{

//根据元素字符串的长度确定大小

返回element1.toString()。长度()

- element2.toString()。长度();

}

}/span

7.subset:这个标签用来截取一个集合中的一些元素,形成一个新的子集。

span style=' font-size:18px;'html xmlns=' http://www . w3 . org/1999/XHTML '

使用s:subset标签截取集合元素/标题。

/头

身体

!-定义一个决策豆-

s:bean var=' my decider ' name=' org . ljh . app . util . my decider '/

!-截取目标集,并通过使用自定义决策器实例生成子集。

指定var属性并将生成的Itertor放入pageScope-

s:subset source=' { span style=' font-family:SimSun;' Java '/span/span pre name=' code ' class=' html ' span style=' font-size:18px;',' C# '

,' C '

,' Ajax '

,' XML '/span/pres span style=' font-size:18px;'} ' decoder=' # my decider ' var=' newList '/直接输出页面范围的new list属性:br/$ { page scope . new list } table border=' 1 ' width=' 240 '!-迭代页面范围中的newList属性-s:iterator status=' ST ' value=' # attr . new list ' tr s:if test=' # ST . odd ' style=' background-color:# bbbbbb '/s:if TDS:property//TD/tr/s

span style=' font-size:18px;'//用户定义的Decider类,实现SubsetIteratorFilter的接口。决定者

公共类MyDecider

实现SubsetIteratorFilter。决定者

{

//实现决策器接口必须实现的决策方法,

//此方法确定集合中的元素是否被选入子集。

公共布尔判定(对象元素)抛出异常

{

String str=(String)元素;

//如果集合元素(string)包含Java EE子串,则可以将其选入子集。

返回str . index of(' Java ')0;

}

}/span

二、数据标签,自我感知数据标签用的不多:

Action标签允许您在jsp页面中直接调用操作。调用操作时,可以指定要调用的操作的名称和命名空间。

如果executeResult参数的属性值为true,标签将包含该页面中操作的处理结果(查看资源)。

使用操作标签指定以下属性:

id:可选属性,作为该操作的引用ID

Name:必需的属性,指定调用动作。

Namespace:可选属性,指定此标签调用操作的名称空间。

ExecuteResult:可选属性,指定该页面中是否包含动作的处理结果。默认值为false,不包括在内。

s:actionname='actionTag!default ' execute result=' true ' namespace='/generic/dataTag '

param=' username ' value=' '/复制到操作属性

paramname='email' value=' '/

/s:动作

Bean实例化一个javabean,使用Param传入属性(get/set)

按名称实例化的javabean的实现类

当var是可选的时,允许将实例放入堆栈的上下文直接与var一起使用。

注意:在bean标记中创建的javabean实例位于栈顶,bean最终删除值栈,除非指定var,否则通过上下文访问值栈。

日期打印格式日期,指定日期和今天日期之间的时间差。

Formatart指定格式format date注意:你不希望nice同时指定,如果同时指定的话。格式被忽略。

nice是否指定了日期和当前日期的区别?

Name必需的格式化日期值

var对象被放入值堆栈中,并可以在日期结束时由该属性的值引用。

constant name=' sruts . custom . i18n . resources ' value=' application resources '/

s:datename=' # date ' for art=' yyyy MM DD day '/

debug标签:

用于辅助调试。页面上会生成超链接,以查看值堆栈和StackContext中的所有信息。

Id钙元素的参考id

包含:jsp或servlet包含在当前页面中。

包含该值的JSP或Servlet。

您可以指定多个param子选项卡来传递参数。

param标签:为其他标签提供参数

set参数的名称(set)value set参数的值。

使用

paramname='color '

param name=' color ' value=' ' color ' '/

Push:将一个值放在值堆栈的顶部。

Value required:指定要放入值堆栈的堆栈值!但是只在push标签中,一旦超过,就立刻把刚放进去的对象去掉。

用法:

s:pushvalue='#session.user '

s:propertyvalue='用户名'

s:propertyvalue='sex '

s:propertyvalue='emai '

/s:推送

Set:仅用于在指定范围内放置一个。

定义一个新变量。将现有值放入新变量。并把它放在指定的范围内。

值指定一个表达式,并将计算结果赋给变量。如果未指定value属性,则默认情况下将栈顶对象赋给变量。

Var指定此属性,并将值更改到值堆栈中。

指定要阻止的新变量的范围,可选应用程序,会话请求页面操作(默认)。如果指定为action,就放入请求,放入action值栈。

名称变量名

I8ntext标签支持国际信息。

I18n将资源包放入值栈名称资源属性名称指定资源包的基本名称。

Text从资源包中获取信息,title通过标题键获取消息。

通过i18n放入的资源包只能在标签体中访问。

文本可以单独使用。首先找到与调用动作类名相同基名的资源包,也就是说动作类所在的包中可以创建动作类名相同的资源文件,可以嵌套param来指定消息文本的参数,顺序对应参数的索引顺序。

s:i18n name=' application resources '

S:textname='title'/name资源属性名称id指定属性,文本内容不会输出,而是存储在值栈中。文本完成后,可以被属性的值引用。

/s:i18n

公共类TextTagAction扩展ActionSupport{} 《topic-21》

Url标记用于创建URL地址和定义param附加请求参数。

动作值指定生成的URL的动作和URL。前一个将被追加。行动。如果没有两个,则当前地址作为地址值。

指定url的可选定位点

Encode可以选择对指定的参数进行编码。不支持cookie重写url。支持会话。

escapeamp会被转义成amp吗?

将var链接值放入值堆栈

IncludeContext是否在URL地址中包含当前上下文。

无论includeParams是否包含请求参数,属性值都只能是none,getall。

方法指定使用操作的方法。

命名空间指定操作所属的命名空间。

Portletmode指定门户模式

Scheme指定url使用的协议。

属性标签,用于输出值堆栈中对象的属性值。

值指定如果没有要输出的对象属性,将输出堆栈的顶部。

可选的defaultvalue为null以输出更改后的值。

escape是否在内容中独占输出html?

三、表单标签,这是表单下Struts2提供的标签,用于界面显示。其实用的比较少。一般情况下,我们会用easy-ui、dwz等专门做接口的框架来代替。其实简单来说,就像HTML中的各种标签,这里就不赘述了。

四、非标单标签,主要用于生成一些非表单的可视化元素,比如标签页,输出HTML页面的树形结构等。当然,它也用于显示封装在动作中的信息。简单介绍一下:

看一个简单的componet标记:

span style=' font-size:18px;'超文本标记语言

使用s:组件标签/标题。

/头

身体

使用h3 s:组件标签/h3

使用默认主题(xhtml),默认主题目录(模板)br/

使用mytemplate.jsp作为视图组件。

s:组件模板='mytemplate.jsp '

s:param name=' list ' value=' { ' Java '

,' C# '

,C '}'/

/s:组件

人力资源/

使用自定义主题来自定义主题目录br/

使用myAnotherTemplate.jsp作为视图组件。

s:组件

templateDir='myTemplateDir '

theme='myTheme '

template=' myanothertemplate . JSP '

s:param name='list' value='

{'Java '

,' C# '

,C '}'/

/s:组件

/body

/html

/span

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: