控件标签

Struts 2 的标签有一组标签。更easy控制流程页面运行。下面是重要的Struts2控制标签列表:

if /else 标签:

这些标签运行可在每一种语言找到的一种基本条件流程。 'If'标签可用于本身或与“Else If''标签和/或单/多'Else'标签。例如以下图所看到的:

<s:if test="%{false}">
<div>Will Not Be Executed</div>
</s:if>
<s:elseif test="%{true}">
<div>Will Be Executed</div>
</s:elseif>
<s:else>
<div>Will Not Be Executed</div>
</s:else>

if else 实例

iterator标签:

这些迭代器将遍历一个值。一个可迭代的值能够是不论什么的java.util.Collection 和 java.util.Iterator。尽管超过一个迭代器遍历排序,能够使用标签对结果进行排序或子集标签的列表或者数组得到一个子集。

以下的演示样例检索当前对象的值栈getDays()方法的值,并用它来遍历。<s:property/>标签打印出迭代器的当前值。

<s:iterator value="days">
<p>day is: <s:property/></p>
</s:iterator>

iterator 实例

merge标签:

这些合并标记须要两个或两个以上的列表作为參数。并把它们合并在一起。例如以下所看到的:

<s:merge var="myMergedIterator">
<s:param value="%{myList1}" />
<s:param value="%{myList2}" />
<s:param value="%{myList3}" />
</s:merge>
<s:iterator value="%{#myMergedIterator}">
<s:property />
</s:iterator>

merge标签实例

append 标签:

这些append标签须要两个或两个以上的列表作为參数,并追加它们放在一起,例如以下图所看到的:

<s:append var="myAppendIterator">
<s:param value="%{myList1}" />
<s:param value="%{myList2}" />
<s:param value="%{myList3}" />
</s:append>
<s:iterator value="%{#myAppendIterator}">
<s:property />
</s:iterator>

append标签实例

generator 标签:

generator标签生成一个迭代器的基础上提供val属性。

下面generator标签生成一个迭代器。并使用迭代器标签打印出来。

<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}">
<s:iterator>
<s:property /><br/>
</s:iterator>
</s:generator>

数据标签

Struts 2 的数据标签主要用于操作页面上显示的数据。以下列出的是重要的数据标签:

action标签:

此标记使开发者可以直接从JSP页面调用动作指定动作的名称和一个可选的命名空间。标签的主体内容是用行动来呈现结果。

不论什么结果处理器定义在struts.xml这个动作将被忽略。指定除非executeResult參数。

<div>Tag to execute the action</div>
<br />
<s:action name="actionTagAction" executeResult="true" />
<br />
<div>To invokes special method in action class</div>
<br />
<s:action name="actionTagAction!specialMethod" executeResult="true" />

action标签实例

include 标签:

将用于还有一个JSP页面中包括还有一个JSP文件。

<-- First Syntax -->
<s:include value="myJsp.jsp" /> <-- Second Syntax -->
<s:include value="myJsp.jsp">
<s:param name="param1" value="value2" />
<s:param name="param2" value="value2" />
</s:include> <-- Third Syntax -->
<s:include value="myJsp.jsp">
<s:param name="param1">value1</s:param>
<s:param name="param2">value2</s:param>
</s:include>

include 标签实例

bean 标签:

bean标签实例化一个类,符合JavaBeans规范。此标记的主体能够包括多个元素:參数设置该类别的不论什么mutator方法。

假设var属性设置在BeanTag上,它会放置到堆栈上下文的bean实例。

<s:bean name="org.apache.struts2.util.Counter" var="counter">
<s:param name="first" value="20"/>
<s:param name="last" value="25" />
</s:bean>

bean标签实例

date标签:

date标签,将让在一个高速和easy的方式格式化日期。能够指定自己定义格式(如“DD/ MM / YYYY HH:MM”),能够生成易读的符号(如“2小时,14分钟”)。或者能够依傍提前定义的格式关键 struts.date.format 属性文件。

<s:date name="person.birthday" format="dd/MM/yyyy" />
<s:date name="person.birthday" format="%{getText('some.i18n.key')}" />
<s:date name="person.birthday" nice="true" />
<s:date name="person.birthday" />

date标签实例

param 标签:

这些參数标签可用于參数其它标签。

该标签具有下面两个參数。

  • name (String) - 參数的名称

  • value (Object) - 參数的值

<pre>
<ui:component>
<ui:param name="key" value="[0]"/>
<ui:param name="value" value="[1]"/>
<ui:param name="context" value="[2]"/>
</ui:component>
</pre>

param标签实例

property 标签:

这些属性标签是用来获取属性的值,这将默认堆栈的顶部,假设没有指定。

<s:push value="myBean">
<!-- Example 1: -->
<s:property value="myBeanProperty" /> <!-- Example 2: -->TextUtils
<s:property value="myBeanProperty" default="a default value" />
</s:push>

property标签实例

push 标签:

这些push标签是用来推堆栈简化使用。

<s:push value="user">
<s:propery value="firstName" />
<s:propery value="lastName" />
</s:push>

push标签实例

set 标签:

这些set标签分配一个值给一个变量在指定的范围内。

它是实用的,当想分配一个变量到复杂的表达式。然后简单地引用变量每次而不是复杂的表达。可用的范围是application, session, request, page和行动。

<s:set name="myenv" value="environment.name"/>
<s:property value="myenv"/>

set 标签实例

text 标签:

这些 text 标签是用来呈现一个i18n 文本消息。

<!-- First Example -->
<s:i18n name="struts.action.test.i18n.Shop">
<s:text name="main.title"/>
</s:i18n> <!-- Second Example -->
<s:text name="main.title" /> <!-- Third Examlpe -->
<s:text name="i18n.label.greetings">
<s:param >Mr Smith</s:param>
</s:text>

text 标签实例

url 标签:

这些URL标签是用来创建一个URL。

<-- Example 1 -->
<s:url value="editGadget.action">
<s:param name="id" value="%{selected}" />
</s:url> <-- Example 2 -->
<s:url action="editGadget">
<s:param name="id" value="%{selected}" />
</s:url> <-- Example 3-->
<s:url includeParams="get">
<s:param name="id" value="%{'22'}" />
</s:url>

Ajax 标签

Struts使用Dojo框架的 AJAX标记实现。

首先,这个样例中。你须要加入 struts2-dojo-plugin-2.2.3.jar。你能够得到这个文件的lib目录struts2的下载 (C:\struts-2.2.3-all\struts-2.2.3\lib\struts2-dojo-plugin-2.2.3.jar)

对于这个锻炼。让我们改动 helloWorld.jsp例如以下:

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
<html>
<head>
<title>Hello World</title>
<s:head />
<sx:head />
</head>
<body>
<s:form>
<sx:autocompleter label="Favourite Colour"
list="{'red','green','blue'}" />
<br />
<sx:datetimepicker name="deliverydate" label="Delivery Date"
displayFormat="dd/MM/yyyy" />
<br />
<s:url id="url" value="/hello.action" />
<sx:div href="%{#url}" delay="2000">
Initial Content
</sx:div>
<br/>
<sx:tabbedpanel id="tabContainer">
<sx:div label="Tab 1">Tab 1</sx:div>
<sx:div label="Tab 2">Tab 2</sx:div>
</sx:tabbedpanel>
</s:form>
</body>
</html>

当我们执行上面的样例中,我们能够得到以下的输出:

如今让我们通过这个样例一步来。

首先要注意的是另外一个新的标签库前缀 sx.  (struts-dojo-tags)是专门创建的标记库的AJAX集成。

然后在HTML头。我们称之为sx:head。

这将初始化Dojo框架,使得它准备为全部的AJAX调用内页。这一步非常重要 - ,没有sx:head初始化Ajax调用不会起作用。

首先,我们有自己主动完毕标签。自己主动完毕标签看起来非常像一个选择框。它填充了红色,绿色和蓝色的值。

但之间的一个选择框而这一次不同​​的是。它自己主动完毕。也就是说,假设開始键入gr,这将填补它为“green”。除此之外。这个标签是非常相似s:select标签,我们前面介绍。

接下来,我们有一个日期时间选择器。

这个标签创建一个输入栏旁边的一个button。当按下button时,弹出一个显示日期和时间选择器。当用户选择的日期,该日期将填充到输入文本标记属性中所指定的格式。在我们的样例中。我们指定dd/MM/yyyy 日期格式。

接下来我们创建一个URL标记的system.action在前面的练习中。我们创建的文件。它并不一定要的system.action - 它能够是不论什么行动您之前创建的文件。然后我们有一个div设置超链接的url和延迟设置为2秒钟。

会发生什么事而言,"Initial Content"将显示2秒钟。然后div的内容将被替换的内容从hello.action运行。

最后,我们有一个简单的选项卡面板有两个选项卡。

标签的div标签“选项卡1和Tab2。

慢慢地随着每个版本号,它应该是值得注意的AJAX标签集成Struts,仍然是一个工作的进步和成熟整合。

Struts(18)标签的更多相关文章

  1. struts的标签库出现Failed to load or instantiate TagExtraInfo class

    使用struts的标签库出现Failed to load or instantiate TagExtraInfo class 最近在使用struts标签库的时候,在eclipse开发环境中是正常的,放 ...

  2. Struts 2 标签库及使用

    1  Struts 2 基本的标签属性. 1) name:指定表单元素的名称,该属性与Action中定义的属性相对应. 2) value:指定表单元素的值. 3) required:指定表单元素的必填 ...

  3. Struts1基础、使用Struts实现登录、使用Struts HTML标签简化开发

    Struts 1基础 为什么重拾Struts 1 曾经是最主流的MVC框架 市场份额依然很大 很多遗留系统中依旧使用 维护和升级都需要熟悉Struts 1 与Struts 2相比 编码.配置繁琐 侵入 ...

  4. struts的标签

    <%@ taglib uri="/struts-tags" prefix="s"%> <%@ taglib uri="/WEB-IN ...

  5. 5.Struts.xml标签中的一些小技巧

    1.为Action属性注入值如给actions包下的test.java类中变量username赋值为"xingyun"在struts.xml中添加下面这段代码: <strut ...

  6. 菜鸟学习Struts——bean标签库

    一.Struts标签库. Struts实际上包含了4个标签库:bean,logic,html,tiles bean:用来在属性范围中定义或取得属性的,同时可以读取资源文件信息 logic:替代JSTL ...

  7. Struts2笔记——struts常用标签

    使用struts标签前,首先要配置struts2架构,然后导入标签库,jsp插入如下语句: <%@taglib uri="/struts-tags" prefix=" ...

  8. Struts 2 标签

    注:要使用Strust 2标签需<%@ taglib prefix="s" uri="/struts-tags" %> 表单标签: .form标签 ...

  9. Struts 2 标签库

    <s:if>标签 拥有一个test属性,其表达式的值用来决定标签里内容是否显示 <s:if test="#request.username=='clf'"> ...

  10. Struts UI标签的使用

    先来看一下日期控件 html5标签中其实已经有日期的类型,用<input type="date">便可调用. struts里面也自带了日期控件,其使用步骤为: 1. 导 ...

随机推荐

  1. Java单例你所不知道的事,与Volatile关键字有染

    版权声明:本文为博主原创文章,未经博主允许不得转载. 如果问一个码农最先接触到的设计模式是什么,单例设计模式一定最差也是“之一”. 单例,Singleton,保证内存中只有一份实例对象存在. 问:为什 ...

  2. NET下Assembly的加载过程

    NET下Assembly的加载过程 最近在工作中牵涉到了.NET下的一个古老的问题:Assembly的加载过程.虽然网上有很多文章介绍这部分内容,很多文章也是很久以前就已经出现了,但阅读之后发现,并没 ...

  3. SQL Server单表已700w+将普通表转换成分区表1

    最近项目中,某个表数据量爆发时增长,单表已700w+,读写性能急剧下降,所以考虑加入分区表以解燃眉之急,后续还是要分表分库,当然这是后话.下面简要说一下将普通表转为分区表的步骤.   一.创建文件组 ...

  4. Flume框架基础

    * Flume框架基础 框架简介: ** Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集.聚集.移动的服务,Flume只能在Unix环境下运行. ** Flume基于流式架构,容错性 ...

  5. java9新特性-22-总结

    1.在java 9 中看不到什么? 1.1 一个标准化和轻量级的JSON API 一个标准化和轻量级的JSON API被许多java开发人员所青睐.但是由于资金问题无法在Java 9中见到,但并不会削 ...

  6. 为什么在input中加了display:inline;再加宽,还有作用?

    以前一直一位input是个行内元素,但是,行内元素的特性就是没有宽高的概念,元素多高,多宽,全凭内容撑起来的. 但是今天写了个demo,用chrome控制台显示:display:inline-bloc ...

  7. jquery easyui a标记方法传值问题

    今天开发一个功能,其操作的按钮式是一个点击的a标记,并且是动态生成的,其点击方法需要传参数具体代码如下 {field:'time',title:'日程时间',width:200,align:'cent ...

  8. PHP实现杨辉三角形

    <?php /**** * 杨辉三角形:我的实现方式. * 下标 * 1 0 * 1 1 1 循环上一行数据1次,计算后结果追加到当前行末尾 * 1 2 1 2 * 1 3 3 1 3 * 1 ...

  9. HDU-1023 Train Problem II 卡特兰数(结合高精度乘除)

    题目链接:https://cn.vjudge.net/problem/HDU-1023 题意 卡特兰数的应用之一 求一个长度为n的序列通过栈后的结果序列有几种 思路 一开始不知道什么是卡特兰数,猜测是 ...

  10. PHP经常使用功能

    1)字符串 主要方法有:strops().substr().str_split().explode()等.很多其它方法查看PHP官方手冊. <?php /** * 字符串的方法:strpos() ...