控件标签

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. less06 引入(importing)

    main.less @wp:960px; .colorsss{ color: darkgreen; } index.css .color{ color: #ff6600; } style.less / ...

  2. Framework3.5安装(Windows8.1)

    在用到Android逆向助手,使用时提示安装Framework3.5,Windows7都有Framework3.5,Windows8却没有,联网更新就算了,这龟速更新得多久.但是问题总还是要解决,随便 ...

  3. 滑动切换Activity代码

    最近需要对练习项目中的代码进行优化,发现很多代码写起来远比想象的困难很多.刚接触Android时间不长,很多东西都不能融会贯通,所以才会有这样的问题存在,当然学习中遇到的问题很有必要做个总结.想想这个 ...

  4. java 8 , merge()

    import java.util.HashMap; import java.util.Map; public class j8merge { public static void main(Strin ...

  5. css inline-block列表布局

    一.使用inline-block布局 二.多列布局方法二 <html><head> <meta charset="utf-8"> <tit ...

  6. 51Nod 独木舟(贪心)

    n个人,已知每个人体重.独木舟承重固定,每只独木舟最多坐两个人,可以坐一个人或者两个人.显然要求总重量不超过独木舟承重,假设每个人体重也不超过独木舟承重,问最少需要几只独木舟? Input 第一行包含 ...

  7. 我所理解的monad(1):半群(semigroup)与幺半群(monoid)

    google到数学里定义的群(group): G为非空集合,如果在G上定义的二元运算 *,满足 (1)封闭性(Closure):对于任意a,b∈G,有a*b∈G (2)结合律(Associativit ...

  8. python(1)处理图像

    一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因此, ...

  9. 2019 前端面试题汇总(主要为 Vue)

    原文链接:点我 由于我的技术栈主要为Vue,所以大部分题目都是Vue开发相关的. 1. 谈谈你对MVVM开发模式的理解 MVVM分为Model.View.ViewModel三者. Model:代表数据 ...

  10. iotop---监控磁盘I/O 使用状况

    iotop命令是一个用来监视磁盘I/O使用状况的top类工具.iotop具有与top相似的UI,其中包括PID.用户.I/O.进程等相关信息.Linux下的IO统计工具如iostat,nmon等大多数 ...