struts2 常用标签总结
1. 使用Struts2的常用逻辑标签
1.1 property标签
- 功能说明
获取对象的属性值,目标对象默认位于ValueStack栈顶
- 标签属性
名称 | 必选 | 类型 | 说明 |
---|---|---|---|
value | no | Object | 对象的属性名称, 默认直接输出 ValueStack 栈顶对象 |
default | no | String | 默认值,如果 value 为 null 则输出此值 |
escape | no | Boolean | 是否进行html 转义,默认为 true |
escapeJavaScript | no | Boolean | 是否进行JavaScript 转义,默认为 false |
eg: <s:property value="user.userName"/>
1.2 if-elseif-else标签
功能说明:
替代Java语法中的if/else
标签属性:
名称 | 必选 | 类型 | 说明 |
---|---|---|---|
test | yes | Boolean | 表达式,决定是否显示if/else if 标签体的内容 |
eg:
欢迎${user.name} , <s:if test="user.role == 'admin'">系统管理员</s:if> <s:elseif test="user.role == 'member'">会员</s:elseif> <s:else>游客</s:else>
1.3 iterator标签
功能说明:
替代Java语言中foreach的功能
标签属性:
名称 | 必选 | 类型 类型 | 说明 |
---|---|---|---|
value | true | Object | 被迭代的对象 |
status | no | String | 迭代状态,IteratorStatus对象 |
PS:不需要写 status 的就会自动迭代,比如customers 这个集合,迭代的时候,直接写value =name 就是 customer 的name了
eg:
<s:iterator value="products"> <s:property value="name"/>,<s:property value="price"/> <br /> </s:iterator>
2. 使用Struts2的常用UI标签
2.1 简单表单标签
Struts2 Form UI Tag | html tag | 说明 |
---|---|---|
textfield | input type="text" | 文本输入框 |
password | input type="password" | 密码输入框 |
textarea | textarea | 多行文本输入框 |
hidden | input type="hidden" | 隐藏域 |
file | input type = "file" | 文件输入框 |
submit | input type="submit" | 提交按钮 |
reset | input type ="reset" | 重置按钮 |
checkbox | input type="checkbox" | 复选框 |
2.2 select标签
功能说明:自带回显功能
生成select标签(含option)
标签属性:
名称 | 类型 | 说明 |
---|---|---|
list | 集合 | 指定option列表项 |
listKey | String | 如果list元素是复合对象,指定 option value 对象属性 |
listValue | String | 如果list 元素是复合对象,指定option text 对应属性 |
emptyOption | Boolean | 是否添加空option |
multiple | Boolean | 是否允许多选 |
headerKey | String | 设置第一选项对应的 option value 对象属性 |
headerValue | String | 设置第一选项对应的 option text 对象属性 |
PS:复合对象的意思是如果是集合会自动迭代。
eg : 集合 List<custoemr> customers
的下拉列表标签的使用
<s:select list="customers" name="customer.custId" listKey="custId" listValue="custName" headerKey="" headerValue="===请选择===" style="WIDTH: 180px"> </s:select>
2.3 checkboxlist标签
功能说明: 自带回显功能
生成一组checkbox
标签属性:
名称 | 类型 | 说明 |
---|---|---|
list | 集合 | 指定option列表项 |
listKey | String | 如果list 元素是复合对象,指定option value 对应属性 |
listValue | String | 如果list 元素是复合对象,指定option text 对应属性 |
PS:复合对象的意思是如果是集合会自动迭代
eg:
<s:checkboxlist name="favors" list="products" listKey="id" listValue="name"/>
2.3.1 checkboxlist 和 checkbox 的区别
- checkbox 和 checkboxlist的用法首先需要搞清楚;
checkbox
适用的场景,例如是、否;有、无;符合、不符合;男、女等这样的语境;
checkboxlist
适用于多个,例如兴趣爱好:篮球、足球、乒乓球、玩游戏、听音乐等等;
2.4 radio 标签
功能说明: 自带回显功能的,需要给 name 属性是必须的
生成一组radio
标签属性:
名称 | 类型 | 说明 |
---|---|---|
list | 集合 | 指定option列表项 |
listKey | String | 如果list 元素是复合对象,指定option value 对应属性 |
listValue | String | 如果list 元素是复合对象,指定option text 对应属性 |
name | String | name 属性是必须的,自带回显,还可以提交选中的值 |
eg:
<s:radio name="favorite" list="products" listKey="id" listValue="name"/>
3. 总结
使用struts2 标签的优缺点:
-
优点
- 自带回显功能,提升开发效率
- 简化代码
-
缺点
- 只能用于使用了 struts2 框架的代码,复用率不高
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
JavaScript学习之旅-12( 原创 )
在上一篇文章中,主要学习了JavaScript中的Date对象、正则表达式、Json、浏览器对象。这一篇我们主要深入学习探索JavaScript中的对象以及构造函数的说明和使用。 我们知道,在Java这门面向对象建模的计算机语言中,创建对象(新建一个Class,肯定是直接或者间接继承Object)、创建完毕之后接着使用对象(使用对象内部封装的函数完成开发需求,也就是new 对象,使用对象内的方法,也称对象的实例)是这们语言的灵魂和基础。不过,在JavaScript中,这个概念需要改一改。JavaScript不区分类和实例的概念,而是通过原型(prototype)来实现面向对象编程。实际上JavaScript对每个创建的对象都会设置一个原型去指向它的原型对象。 继承,是Java这门语言的特征之一,子类继承父类的目的是,子类可以吸收父类的数据属性和行为,并能扩展新的能力。那么,在JavaScript中,也有一种类似继承拓展的能力,我们首先定义一个对象: 定义一个“父类” 假设我现在想和Java一样,想实现类似继承的功能,这个该如何去做?这个时候,我们可以首先定义一个对象,然后使用关键字 _...
- 下一篇
业务代码的救星——Java对象转换框架MapStruct
介绍 在业务项目的开发中,我们经常需要将Java对象进行转换,比如从外部HSF服务得到的对象转换为本域的业务对象domain object,将domain object转为数据持久层的data object,将domain object 转换为DTO以便返回给外部调用方等。在转换时大部分属性都是相同的,只有少部分的不同,如果手工编写转换代码,会很繁琐。这时我们可以通过一些对象转换框架来更方便的做这件事情。 这样的对象转换框架有不少,比较有名的有ModelMapper和MapStruct。它们所使用的实现技术不同,ModelMapper是基于反射的,通过反射来查找实体对象的字段,并读取或写入值,这样的方式实现原理简单,但性能很差。与ModelMapper框架不同的是,MapStruct是基于编译阶段代码生成的,生成的转换代码在运行的时候跟一般的代码一样,没有额外的性能损失。本文重点介绍MapStruct。 原理 使用方法 1. Mapper声明 通过类似下面的代码声明一个Mapper,MapStruct会在编译时自动生成实现代码。除了基本的功能外,MapStruct提供很多高级的功能,全...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果