一、通用标签

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

e2:默认存入 request 域中

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

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

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

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

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

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

属性:test: 布尔值

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

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

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

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

e1:遍历集合

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

e2:遍历Map

  1. <s:iterator value="#attr.map">
  2. <s:property value="key"/>
  3. <s:property value="value"/>
  4. </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标签(生成一组单选按钮)

  1. <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标签(示选项的分组,每个分组有自己数据的来源)

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

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

  1. <s:checkboxlist
  2. list="#request.cities"
  3. listKey="cityId"
  4. listValue="cityName"
  5. name="love"
  6. label="喜爱的城市">
  7. </s:checkboxlist>

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

  1. <s:checkbox name="married" label="婚否"></s:checkbox>
  2.  
  3. <input type="checkbox" name="married" value="true" id="userAction_married"/>
  4. <input type="hidden" id="__checkbox_userAction_married" name="__checkbox_married" value="true" />
  5. <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. 微信公众平台开发视频教程-03-获取Access Token和获取微信服务器IP,添加微信菜单

    1 获取access token 此token是以后每次调用微信接口都会带上的票据,token是公众号全局唯一票据,在调用其他接口之前都需要先得到token,taoken长度至少512个字符,通常用s ...

  2. Linux 的启动流程(转)

    原文链接:http://blog.jobbole.com/46078/ 半年前,我写了<计算机是如何启动的?>,探讨BIOS和主引导记录的作用. 那篇文章不涉及操作系统,只与主板的板载程序 ...

  3. WPF Window 服务安装

    一.安装服务 1.已管理员的身份启动CMD 2.输入 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 回车 3.输入 InstallUtil.exe ...

  4. ecshop登陆后价格可见,会员注册登陆才能显示价格

    打开模版文件夹里面的goods.dwt 查找{$lang.shop_price}<font class="price" id="ECS_SHOPPRICE" ...

  5. android Camera 结构

    Java层 :Frameworks\base\core\java\android\hardware\Camera.java JNI: Frameworks\base\core\jni\android_ ...

  6. denyhost防止SSH暴力破解

    参考: http://blog.sina.com.cn/s/blog_593af2a70102vjnf.html denyhost 官网: http://denyhosts.sourceforge.n ...

  7. Microsoft.CSharp.CSharpCodeProvider

    Microsoft.CSharp.CSharpCodeProvider MSDN 提供对 C# 代码生成器和代码编译器的实例的访问.类提供可用来检索 C# ICodeGenerator 和 ICode ...

  8. 『Golang』跨平台TUI(基于文字的用户界面)库Terbox-Go文档翻译

    原文 package termbox import "github.com/nsf/termbox-go" termbox-go 是一个用于创建跨平台TUI(基于文本的用户界面)的 ...

  9. __get,__set

    __get,__set 为php的magic方法,在类中定义为 public 类型. class UserModel { private $id; public $name; public funct ...

  10. SNF开发平台WinForm之十二-发送手机短信功能调用-金笛-SNF快速开发平台3.3-Spring.Net.Framework

    1.调用前组装参数 2.调用发送信息服务脚本   .调用前组装参数: BaseSendTaskEntity entity = new BaseSendTaskEntity(); entity.Mess ...