Struts2标签简介
Struts2标签简介
Struts2标签的优势
标签库简化了用户对标签的使用
结合OGNL使用,对于集合、对象的访问功能非常强大
提供可扩展的主题、模板支持,极大简化了视图页面的编写
不依赖任何表现层技术
Struts2标签的分类
通用标签(Generic Tags)
数据标签( Data Tags )
控制标签( Control Tags )
UI标签( UI Tags )
Ajax标签( Ajax Tags )
数据标签
<s:property>:输出指定值
value:用来获取值的OGNL表达式
default:value属性返回空值时,如果仍希望输出某些内容,可使用default来指定这些内容
escapeHtml:是否转义HTML ,默认取值true
<s:debug>:查看值栈以及Stack Context中所能访问的值
<s:date> :格式化输出一个日期数据
name :被格式化的值,必须设置
format :指定日期格式,如:yyyy-MM-dd HH:mm:ss
<s:set> :对设置的表达式求值,并将结果赋给特定作用域中的某个变量
var:变量名
value:变量的值,可以是常量,也可以是OGNL表达式
scope:变量的生存周期
应用:比如一个对象在OGNL上的访问层次较深,可以使用该标签将其定义为一个变量,这样保 证在多次引用它时更方便
<s:url> :用来生成一个url
var:该url的引用名称。如果指定这个属性,则url标签不会在页面上生成字符串
action:要访问的Action的名字
value:要访问的目标,如果action不提供,就使用value作为URL的地址值
<s:a> :用来生成HTML的<a>标签,可以通过<s: url>来设置它的url
<s:a> :用来生成HTML的<a>标签,可以通过<s: url>来设置它的url
href:超链接的url
<s:a>与<s:url>
<s:a>用来直接生成一个超链接
<s:url>用来生成一个字符串
<s: param> :用来为其它标签添加参数化设置的功能
name:参数的名称
value:参数的值
一般不单独使用,而是作为其他标签的子标签,主要用来配合其他标签指定参数
<s:include> :把其他页面包含到当前的页面上,类似于<jsp:include>上,类似于<jsp:include>
value:用来指定其他可以被引用的URL的名字,必须要设置
小结
OGNL变为字符串
单引号如: <s:property value="'<hr/>'" escapeHtml="false"/>
字符串变为OGNL
%{},如:<s:a href="%{#houseUrl}">超链接</s:a>
OGNL中%、#以及$的使用场景
%{}:设置动态的值,告诉标签的处理类,该字符串按照OGNL表达式来处理
比如:<s:property value=“house.title”/>
不加%{},标签处理类已经将其作为OGNL表达式动态处理了
方法一:不确定时,可以每个属性都加%{}
方法二:根据实际的运行效果来调整标签属性写法
#:取Stack Context中的值
如:<s:property value="#request.name"/>
控制标签
<s: if> 、 <s: elseif> 、 <s: else> 表达分支判断
test:表示是否符合条件,本身是一个OGNL表达式,运算结果为一个boolean值
<s:iterator> 用来处理循环,遍历集合对象
value :用来指明到底循环的是谁,这个属性的值是个OGNL表达式
var :变量名称,用来引用被循环的对象
status :返回当前循环的各种信息
count :集合含有多少个对象
index :正在循环的这一项的索引
even :当前遍历到的对象是不是处于列表的偶数索引位置
odd :当前遍历到的对象是不是处于列表的奇数索引位置
UI标签简介
Struts2 UI标签
用来生成Web界面,或者为Web界面提供某些功能支持
实现是基于模板和主题的
模板(Template)
就是一些代码,在Struts2中通常是用FreeMarker编写的文件(.ftl)
用于生成HTML
在Struts2核心jar包的template包中
主题(Theme)
将一些具有共同观感的模板组织到一起就形成了主题
Struts2使用目录名作为主题名
可以通过切换主题来切换标签生成的HTML的风格
Struts2内建主题
simple、xhtml、css_xhtml、ajax
自己可以修改主题
修改struts.xml配置 <constant name="struts.ui.theme" value="simple" />
设置相应标签的theme属性
UI标签演示小结
Struts2的表单标签会在HTML标签中找到对应的标签,所以各标签属性可以对比之前HTML标签的属性,作用一样
Struts2的表单标签会在HTML标签中找到对应的标签,所
以各标签属性可以对比之前HTML标签的属性,作用一样
<s:form>表单
属性:name、action、method
<s:textfield>单行文本框
属性:name、value、maxlength、readonly
<s:textarea>多行文本框
属性:name、value、cols、rows、readonly
<s:submit>提交按钮
UI标签之下拉框
<s:select>下拉框
name:下拉框的名字
list:生成下拉框的集合
listKey :生成的选项的value值的集合对象的属性
listValue :生成的选项显示的文字的集合对象的属性
<s:doubleselect>两个联动的下拉框
name/doubleName:第一个/第二个下拉框的名字
list/doubleList:生成第一个/第二个下拉框的集合
listKey/doubleListKey :生成第一个/第二个下拉框的选项的value值的集合对象属性
listValue/doubleListValue :生成第一个/第二个下拉框的选项显示的文字的集合对象属性
Ajax标签
datetimepicker标签:日期、时间
name:名称
label :用来显示组件前的文本
使用步骤
在项目中引入struts2-dojo-plugin-2.3.4.1.jar
<%@taglib uri="/struts-dojo-tags" prefix="sx"%>
<sx:head parseContent="true" />
<sx:datetimepicker name="timer" label="发表时间"/>
UI标签、Ajax标签实际使用并不多,通过帮助文档了解即可
演示小结
doubleselect不换行显示
方法一:添加CSS样式
.add br{display:none;}
方法二:修改/template/simple/doubleselect.ftl,去掉其中的<br/>
实现数据回显
表单标签name与Action属性一致
添加房屋后跳转到Action,应该以转发形式,而不是重定向
Struts2标签简介的更多相关文章
- (五)Struts2 标签
所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:Struts2 标签简介 Struts2 自己封装了一套标签,比JSTL ...
- Struts2核心技术简介
Struts2核心技术简介 使用Struts2框架,只要注重以下三大元素:配置文件.映射文件和Action: 全局属性文件struts.properties:保存系统运行的一些参数变量,整个系统只有一 ...
- JAVAEE——struts2_04:自定义拦截器、struts2标签、登陆功能和校验登陆拦截器的实现
一.自定义拦截器 1.架构 2.拦截器创建 //拦截器:第一种创建方式 //拦截器生命周期:随项目的启动而创建,随项目关闭而销毁 public class MyInterceptor implemen ...
- struts2框架学习笔记7:struts2标签
三大标签: 1.JSP:脚本,为了替代servlet,已过时 2.JSTL:标准标签库(core.format.sql.xml),还未淘汰的只有core库 3.Struts2标签库:由Struts2开 ...
- struts2之OGNL和struts2标签库和ValueStack对象
OGNL简介: (1)OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. struts2框架默认就支持Ognl表达式语言(所以 ...
- ognl,jstl,struts2标签中符号#,$,%的用法
STRUTS2标签操作Map <s:iterator value="sundayMap"> <td colspan="7" ...
- 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。
最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...
- (转载)SPRINGMVC表单标签简介
SpringMVC表单标签简介 在使用SpringMVC的时候我们可以使用Spring封装的一系列表单标签,这些标签都可以访问到ModelMap中的内容.下面将对这些标签一一介绍. 在正式介绍Spri ...
- struts2 标签 和 c标签的页面数据显示
用struts2 标签显示的页面代码 <s:if test="#request.employees == null || #request.employees.size() == 0& ...
随机推荐
- Java开发环境的搭建
确定自己的操作系统版本并下载安装JDK 1.下载JDK windows系统: 右键我的电脑->属性;如下图: 2.下载JDK 下载地址:http://www.oracle.com/index.h ...
- iBatis.Net(C#)SQL数据映射
转载请注明 http://www.cnblogs.com/13590/archive/2013/03/01/2938126.html 摘要:本文探讨了iBatis.Net框架的XML数据映射文件各配置 ...
- ubuntu 安装编译nginx,并实现HLS推送,,可以实现摄像头直播
1.安装nginx的依赖包 zlib pcre openssl(可以源码安装也可以直接系统安装) sudo apt-get install libpcre3 libpcre3-dev zlib1g- ...
- HoloLens开发手记 - Unity之Spatial Sounds 空间声音
本文主要讲述如何在项目中使用空间声音特性.我们主要讲述必须的插件组件和Unity声音组件和属性的设置来确保空间声音的实现. Enabling Spatial Sound in Unity 在Unity ...
- Android技能杂谈——如何优雅的处理控件的点击事件
首先分享一个最佳实践: 大家开发复杂一些的Android应用的时候常常会写一个BaseActivity或者BaseFragment,里面写上一些基本而公用的方法,比如监听网络状况.弹出对话框.设置ac ...
- [USACO2005][POJ3169]Layout(差分约束)
题目:http://poj.org/problem?id=3169 题意:给你一组不等式了,求满足的最小解 分析: 裸裸的差分约束. 总结一下差分约束: 1.“求最大值”:写成"<=& ...
- ThinkPHP中的跨控制器调用与框架执行流程
一.跨控制器调用 UserController.class.php <?php namespace Home/Controller use Think/Controller class User ...
- [设计模式] javascript 之 建造者模式
建造者模式说明 1. 将一个复杂对象的 构造 与它的表示相分离,使同样的创建过程可有不同的表示,这就叫做建造者模式. 2. 面向对象语言中的说明,主要角色: 1>. Builder 这个接口类, ...
- Ubuntu下vim的配置
由于刚开始学习Linux,对佷多操作还不熟悉,遇到了一些困难,在这里记录一下. 1 安装vim.俺我现在的理解,vim有控制台版本和GUI版本.控制台版本貌似是Ubuntu自带的,可以在终端输入 v ...
- 安装xampp二三事
1.chrome 找不到页面时会自动跳转到hao123 安装完chrome后,想测试下localhost,结果找不到页面,当然正常的显示是“该页面无法显示”才对,可恨啊,总是直接转到hao123页面上 ...