一、通用标签

1.s:property (读取值栈中对象的属性值)

属性:value:指定OGNL表达式;default:OGNL表达式返回为 null 时,使用默认值;escape:是否对 HTML 特殊字符进行转义

e1:读取对象栈中对象的属性值

<s:property value="[1].userName"/>

e2:访问Map栈,读取Session域中对象的属性值

<s:property value="#session.sessionKey"/>

e3:访问Map栈,通过attr读取域对象中的属性值

<s:property value="#attr.requestAttrKey"/>

e4:若不指定 value 值,则返回栈顶对象

2.s:url(创建一个 url 地址字符串)

属性:value:创建 url 地址字符串;action:带有 ContextPath 和 .action 后缀

e1:通过value属性创建URL地址字符串

<s:url value="url"/>  <!-- url-->
<s:url value="/url"/> <!-- /struts2/url 带有 ContextPath-->

e2:通过action属性创建URL地址字符串

<s:url action="actionUrl"/> <!-- /struts2/actionUrl.action 不需要再次指定 / -->

e3:通过action属性和namespace属性以及method属性创建URL地址字符串

<s:url action="acitonUrl" namespace="test" method="dynamicMethod"/> <!-- test/acitonUrl!dynamicMethod.action -->

e4:创建带请求参数的URL地址字符串

<s:url value="/urlParam">
<s:param name="userId" value="'zsmj'"/>
</s:url>
<!-- /struts2/urlParam?userId=zsmj -->
<!--
1.s:param 标签:给父标签传递参数
2.value:若不加单引号,则从值栈中查找,若值栈中找不到则不添加该参数;加单引号按字符串输出
-->

e5:创建包含GET方式传递过来的请求参数的URL地址字符串

<s:url value="/urlParam" includeParams="get" />

e6:创建不包含contextPath的URL地址字符串

<s:url value="/urlParam4" includeContext="false"/>

3.s:set(将键值对存入域对象)

属性:var:存入域对象中的 name 值;value:存入域对象中的 value 值; scope:域对象的范围;其他两个属性都是过时的

e1:将attrName01="attrValue01"存入Session域

<s:set var="attrName01" value="'attrValue01'" scope="session"/>
<s:property value="#session.attrName01" />

e2:默认存入 request 域中

e3:value 可以为 OGNL 表达式,值为对应值栈中的值

<s:set value="#attr.attrName01" var="attrName03"/>
<s:property value="#attr.attrName03"/>

4.s:push(将一个对象临时压入栈顶,标签结束后弹出)

属性:value:要压入栈顶的对象,可以为 OGNL 表达式 对应的值栈中的值

<s:push value="'pushObj'">
<s:property/> <!-- pushObj -->
</s:push>
<s:property/> <!-- com.nucsoft.struts2.helloworld.TestTagAction@7202555 -->

5.s:if、s:elseif、s:else

属性:test: 布尔值

e1:传入以age为键的请求参数,根据age的不同值测试不同分支条件

<s:if test="#parameters.age[0]>18">大于18岁了</s:if>
<s:elseif test="#parameters.age[0]<18">小于18岁</s:elseif>
<s:else>等于18岁了</s:else>

6.s:iterator(遍历数组、Collection集合、Map集合,将遍历得到的每一个结果放入栈顶,本次循环结束时弹出)

属性:value:要遍历的内容;var:将遍历得到的值以字符串的形式放入请求域,如果不指定则放入栈顶;status:IteratorStatus类型,会放入到请求域中;begin:遍历开始索引位置;end:遍历结束索引位置,包含;step:步长,指定负数则倒序遍历。

e1:遍历集合

<s:iterator value="#attr.list">
<s:property/>
</s:iterator>

e2:遍历Map

<s:iterator value="#attr.map">
<s:property value="key"/>
<s:property value="value"/>
</s:iterator>

7.s:sort(对数组、Collection集合或Map集合中的元素进行排序)

属性:

source:要比较的集合对象

var:将排序好的集合对象放入pageScope,若不指定,则存入值栈栈顶

comparator:比较器对象

8.s:date(格式化日期)

属性:

name:指定一个 OGNL 表达式,用于读取要格式化的日期对象

format:日期格式字符串,如"dd/MM/yyyy"

var:若有值,则以此值为key,存放到域对象中,若没指定,则输出。

9.s:a(创建一个超链接)

属性:

href:将指定字符串原封不动的作为超链接的 href 值,不支持EL 表达式,如要从值栈中获取数据,可以使用强制 OGNL 解析,%{OGNL表达式}%

value:不加 /,和 href 一样,加 / ,自动加入 ContextPath

二、表单标签

1.总览

Struts2标签名

对应的HTML元素

s:form

form

s:textfield

input type=”text”

s:password

input type=”password”

s:hidden

input type=”hidden”

s:submit

input type=”submit”

s:textarea

textarea

s:radio

input type=”radio”

s:select

select/option

s:optiongroup

optiongroup/option

s:checkboxlist

input type=”checkbox”

s:checkbox

单一的input type=”checkbox”

2.表单标签的通用属性

属性名

类型

作用

label

String

指定一个表单元素在XHTML和Ajax主题下的行标,在simple主题下无效

name

String

指定一个表单元素的name属性值,一个输入元素的name属性将被自动映射(或注入)到一个Action类中由setXxx()方法定义的属性

value

String

指定一个表单元素的value属性值

cssClass

String

指定一个表单元素的class属性值

cssStyle

String

指定一个表单元素的style属性值

title

String

指定一个表单元素的title属性值

disabled

String

指定一个表单元素的disabled属性值

labelPosition

String

指定一个表单元素在XHTML和Ajax主题下的行标位置,可选值[top|left]

key

String

这个输入字段所代表的属性的名字,name和label属性的快捷方式

required

boolean

在XHTML主题中,指定该属性是否加*

requiredPosition

String

指定一个表单元素的*的位置,可选值[left|right]

tabIndex

String

指定HTML标签的tabindex属性

3.s:form 标签

属性名

类型

默认值

作用

action

String

当前action

当前表单提交的目标Action

enctype

String

——

表单的enctype属性

method

String

POST

表单提交的请求方式

namespace

String

当前namespace

目标Action所从属的命名空间

acceptcharset

String

——

当前表单所接受的字符集,多个字符集用逗号或空格隔开

onsubmit

String

——

用于绑定onsubmit事件的句柄

openTemplate

String

——

用来打开这个表单的模板

portletMode

String

——

在用户提交这个表单后将显示的portlet模式

target

String

——

表单的target的属性

validate

boolean

false

在XHTML/Ajax主题下是否进行客户端输入验证

windowState

String

——

用户提交表单后将显示的窗口状态

4.s:textfield标签(生成一个单行文本框)

属性名

类型

默认值

作用

maxlength

int

——

生成文本框后最多能容纳多少个字符

readonly

boolean

false

生成的文本框是否为只读

size

int

——

生成的文本框的宽度

key

   

可以同时代替 name 和 label 属性

5.s:password标签(生成一个密码框)

说明:扩展自 s:textfield ,多了一个 showPassword 属性,为 布尔型,决定要不要显示输入的密码

6.s:hidden 标签(用于生成一个表单隐藏域)

7.s:submit标签(用于生成表单提交按钮)

属性名

类型

默认值

作用

align

String

right

XHTML/Ajax主题下控制提交按钮的对齐方向

type

String

input

XHTML/Ajax主题下控制提交按钮的显示方式,可选值[input|button|image]

src

String

——

当type=image时,使用src属性指定图片路径

8.s:textarea标签(用于生成多行文本域)

属性名

类型

默认值

作用

cols

int

——

textarea标签的cols属性

rows

int

——

textarea标签的rows属性

readonly

boolean

false

指定当前元素是否为只读

9.有选择功能的标签的通用属性

list属性:指定用于生成多选框的list集合

listKey属性:指定生成的多选框的value属性

listValue属性:指定每一个多选框旁边的说明文字

name属性:指定生成的多选框的name属性

如果list属性读取的是一个Map,则可以由Map的键生成多选框的value属性,Map的值生成多选框旁边显示的文字,所以此时不需要指定listKey和listValue属性。

10.s:radio标签(生成一组单选按钮)

<s:radio list="#{'male':'男','female':'女'}" name="gender" label="性别"></s:radio>

11.s:select标签(生成下拉列表)

属性名

类型

默认值

作用

emptyOption

boolean

false

指定是否在标题下面插入一个空白选项

headerKey

String

——

选项列表中第一个选项的键

headerValue

String

——

选项列表中第一个选项的值

multiple

boolean

false

指定是否多选

size

int

——

同时显示在页面里的选项个数

10.s:optiongroup标签(示选项的分组,每个分组有自己数据的来源)

<s:optgroup label="opt01" list="#{'aa':'AA','bb':'BB' }"></s:optgroup>
<s:optgroup label="opt02" list="#{'aa':'AA','bb':'BB' }"></s:optgroup>

11. s:checkboxlist标签(生成一组多选框)

<s:checkboxlist
list="#request.cities"
listKey="cityId"
listValue="cityName"
name="love"
label="喜爱的城市">
</s:checkboxlist>

12.s:checkbox标签(在页面上提供一个勾选框,用于提交一个布尔值,典型的应用是“是否同意”)

<s:checkbox name="married" label="婚否"></s:checkbox>

<input type="checkbox" name="married" value="true" id="userAction_married"/>
<input type="hidden" id="__checkbox_userAction_married" name="__checkbox_married" value="true" />
<label for="userAction_married" class="checkboxLabel">婚否</label>

struts2基础——标签的更多相关文章

  1. [JavaWeb基础] 012.Struts2 自定义标签使用

    在做开发中,我们会把一些比较经常使用到的代码封装起来,这样可以加快开发的速度和减少错误,并且在修改bug可以一次修改多次修复.那么在前端页面上,如果我们要经常用到公用的显示功能,并涉及到服务端逻辑操作 ...

  2. Struts2入门1 Struts2基础知识

    Struts2入门1 Struts2基础知识 20131130 代码下载: 链接: http://pan.baidu.com/s/11mYG1 密码: aua5 前言: 之前学习了Spring和Hib ...

  3. Struts2之标签使用

    上一篇我们一起探讨了Struts2中的OGNL表达式的知识,本篇我们一起来学习一下关于Struts2标签的使用,包括:基础标签:property.set.bean.include:判断标签:if el ...

  4. Struts2之Struts2的标签库

    前言: Struts2提供了大量的标签 ,用来帮助开发表现层页面,这些表现一方面解决了美观性的需求,因为它们具有html标签一样的外观,另一方面它们解决了功能性的需求, 因为它们具有jsp脚本一样的逻 ...

  5. struts2 页面标签或ognl表达式取值--未完待续

    一.加#号取值和不加#号取值的解说 1.s:property 标签——value属性使用事项 1)涉及问题:取值时什么时候该加#,什么时候不加? 2)介绍 <s:property value=& ...

  6. Struts2基础入门

    Struts2基础入门 创建一个web工程 0)导包并且创建一个核心配置文件 <?xml version="1.0" encoding="UTF-8"?& ...

  7. (转)Struts2的标签库

    http://blog.csdn.net/yerenyuan_pku/article/details/68638679 Struts2的标签库 对于一个MVC框架而言,重点是实现两部分:业务逻辑控制器 ...

  8. (十六)Struts2的标签库

    一.简介 Struts2的标签库使用OGNL为基础,大大简化了数据的输出,也提供了大量标签来生成页面效果,功能非常强大. 在早期的web应用开发中,jsp页面主要使用jsp脚本来控制输出.jsp页面嵌 ...

  9. HTML基础标签入门

    HTML基础标签 昨天学习了一些HTML的基本标签以及基本属性: HTML是一种超文本标记语言,其中PHP是世界上最好的语言(增加学习的动力荣誉感). HTML文档里包含三部分: <html&g ...

随机推荐

  1. linux-impdp的使用

    数据库是在linux服务器上,需要用impdp方式导入一个dmp,用root用户登录该数据库服务器后,直接采用impdp命令执行导入操作,提示:KSH:impdp:not found.经查原来是操作的 ...

  2. 连接UI到代码

    本章,你将连接FoodTracker应用程序的UI到代码并定义一些可执行的动作.当你完成时,你的应用程序将是这个样子: 学习目标在课程结束时,你将能够:1.解释一个storyboard中的场景和vie ...

  3. WPF窗体的命令绑定

    方法一:使用代码 <WpfUI:View.CommandBindings> <CommandBinding Command="Help" CanExecute=& ...

  4. [界面开发新秀]免费的AYUI,开发360领航版系列教程[2/40]

            <界面开发风AYUI-基于WPF By AY> 大家好! 距离上篇博客发布有10天了,因为我在开发AYUI4.X效果更惊艳 我是AY,很高兴,终于可以写自己的作品的,网络博 ...

  5. Android开发(二十九)——layout_weight的含义

    首先声明只有在Linearlayout中,该属性才有效.之所以android:layout_weight会引起争议,是因为在设置该属性的同时,设置android:layout_width为wrap_c ...

  6. web项目总结

    web项目 Webroot下面的index.jsp页面的内容: <%@ page language="java" pageEncoding="UTF-8" ...

  7. 基情四射的两个css样式

    自定义blog样式时,代码段的line-height继承样式post的line-height,间隔太大了,决定再减小点,css都玩了几年了,感觉中这是很容易的事情.然后,就悲剧了好久,原先自定义样式表 ...

  8. C# WinForm程序打印条码 Code39码1

    做WinForm程序需要打印条码,为了偷懒不想自己写生成条码的程序在网上下载一个标准的39码的字体,在程序里面换上这个条码字体即可打印条码了. 最重要的一点作为记录: 如果想把“123456789”转 ...

  9. Ubuntu 13.04 双显卡安装NVIDIA GT 630M驱动

    [日期:2013-05-24]   Linux系统:Ubuntu 13.04 安装 bumblebee 以管理双显卡,下面命令会自动安装NVIDIA显卡驱动 sudo add-apt-reposito ...

  10. 【MongoDB】windows平台搭建Mongo数据库复制集(类似集群)(转)

    原文链接:[MongoDB]windows平台搭建Mongo数据库复制集(类似集群)(一) Replica  Sets(复制集)是在mongodDB1.6版本开始新增的功能,它可以实现故障自动切换和自 ...