struts2基础——标签
一、通用标签
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基础——标签的更多相关文章
- [JavaWeb基础] 012.Struts2 自定义标签使用
在做开发中,我们会把一些比较经常使用到的代码封装起来,这样可以加快开发的速度和减少错误,并且在修改bug可以一次修改多次修复.那么在前端页面上,如果我们要经常用到公用的显示功能,并涉及到服务端逻辑操作 ...
- Struts2入门1 Struts2基础知识
Struts2入门1 Struts2基础知识 20131130 代码下载: 链接: http://pan.baidu.com/s/11mYG1 密码: aua5 前言: 之前学习了Spring和Hib ...
- Struts2之标签使用
上一篇我们一起探讨了Struts2中的OGNL表达式的知识,本篇我们一起来学习一下关于Struts2标签的使用,包括:基础标签:property.set.bean.include:判断标签:if el ...
- Struts2之Struts2的标签库
前言: Struts2提供了大量的标签 ,用来帮助开发表现层页面,这些表现一方面解决了美观性的需求,因为它们具有html标签一样的外观,另一方面它们解决了功能性的需求, 因为它们具有jsp脚本一样的逻 ...
- struts2 页面标签或ognl表达式取值--未完待续
一.加#号取值和不加#号取值的解说 1.s:property 标签——value属性使用事项 1)涉及问题:取值时什么时候该加#,什么时候不加? 2)介绍 <s:property value=& ...
- Struts2基础入门
Struts2基础入门 创建一个web工程 0)导包并且创建一个核心配置文件 <?xml version="1.0" encoding="UTF-8"?& ...
- (转)Struts2的标签库
http://blog.csdn.net/yerenyuan_pku/article/details/68638679 Struts2的标签库 对于一个MVC框架而言,重点是实现两部分:业务逻辑控制器 ...
- (十六)Struts2的标签库
一.简介 Struts2的标签库使用OGNL为基础,大大简化了数据的输出,也提供了大量标签来生成页面效果,功能非常强大. 在早期的web应用开发中,jsp页面主要使用jsp脚本来控制输出.jsp页面嵌 ...
- HTML基础标签入门
HTML基础标签 昨天学习了一些HTML的基本标签以及基本属性: HTML是一种超文本标记语言,其中PHP是世界上最好的语言(增加学习的动力荣誉感). HTML文档里包含三部分: <html&g ...
随机推荐
- linux-impdp的使用
数据库是在linux服务器上,需要用impdp方式导入一个dmp,用root用户登录该数据库服务器后,直接采用impdp命令执行导入操作,提示:KSH:impdp:not found.经查原来是操作的 ...
- 连接UI到代码
本章,你将连接FoodTracker应用程序的UI到代码并定义一些可执行的动作.当你完成时,你的应用程序将是这个样子: 学习目标在课程结束时,你将能够:1.解释一个storyboard中的场景和vie ...
- WPF窗体的命令绑定
方法一:使用代码 <WpfUI:View.CommandBindings> <CommandBinding Command="Help" CanExecute=& ...
- [界面开发新秀]免费的AYUI,开发360领航版系列教程[2/40]
<界面开发风AYUI-基于WPF By AY> 大家好! 距离上篇博客发布有10天了,因为我在开发AYUI4.X效果更惊艳 我是AY,很高兴,终于可以写自己的作品的,网络博 ...
- Android开发(二十九)——layout_weight的含义
首先声明只有在Linearlayout中,该属性才有效.之所以android:layout_weight会引起争议,是因为在设置该属性的同时,设置android:layout_width为wrap_c ...
- web项目总结
web项目 Webroot下面的index.jsp页面的内容: <%@ page language="java" pageEncoding="UTF-8" ...
- 基情四射的两个css样式
自定义blog样式时,代码段的line-height继承样式post的line-height,间隔太大了,决定再减小点,css都玩了几年了,感觉中这是很容易的事情.然后,就悲剧了好久,原先自定义样式表 ...
- C# WinForm程序打印条码 Code39码1
做WinForm程序需要打印条码,为了偷懒不想自己写生成条码的程序在网上下载一个标准的39码的字体,在程序里面换上这个条码字体即可打印条码了. 最重要的一点作为记录: 如果想把“123456789”转 ...
- Ubuntu 13.04 双显卡安装NVIDIA GT 630M驱动
[日期:2013-05-24] Linux系统:Ubuntu 13.04 安装 bumblebee 以管理双显卡,下面命令会自动安装NVIDIA显卡驱动 sudo add-apt-reposito ...
- 【MongoDB】windows平台搭建Mongo数据库复制集(类似集群)(转)
原文链接:[MongoDB]windows平台搭建Mongo数据库复制集(类似集群)(一) Replica Sets(复制集)是在mongodDB1.6版本开始新增的功能,它可以实现故障自动切换和自 ...