day02:structs2标签库

简介: day02:structs2标签库

image.png

表单标签

<s:form action=“login” method=“post”></<s:form>

(对应着:)

<s:textfield name=“userName” label=“用户名”/>

(对应着:用户名:)

<s:password name=“password” label=“密码”/>

(对应着:密码:)

控制标签

用来完成流程的控制,如条件分支、循环操作,也可以实现对集合的排序和合并。

<s:if>标签、<s:elseif>标签和<s:else>标签

<s:if test="%{value==-1}">

(对应着:if、elseif、else语句)

image.png

<s:iterator>标签

iterator标签主要是对集合进行迭代操作,集合可以使List、Map、Set和数组。

var:指定集合元素的ID。

value:指定迭代输出的集合,该集合可以是OGNL表达式,也可以通过Action返回一个集合类型。

status:指定集合中元素的status属性。指定status属性后,每次迭代都会产生一个IteratorStatus实例对象。

int getCount():返回当前迭代元素的个数。

int getIndex():返回当前迭代元素的索引值。

boolean isEven():返回当前迭代元素的索引值是否为偶数。

boolean isOdd():返回当前迭代元素的索引值是否为奇数。

boolean isFirst():返回当前迭代元素的是否是第一个元素。

boolean isLast():返回当前迭代元素的是否是最后一个元素。

使用iterator标签的属性status时,其实例对象包含以上的方法,

而且也包含的有对应的属性,如#status.count、#status.even、#status.odd、#status.first等。

OGNL表达式

三个参数:表达式、根对象和上下文环境。

表达式:指出OGNL操作要做的工作,例如,name、student.name等表达式,表示取name或者student中的name的值。

根对象:指定OGNL要操作的对象,例如,<s:property value="#request.name"/>中,request就是对象,这个对象取出name属性的值。

上下文环境:是OGNL要操作的地点

如果使用OGNL需要访问的不是根对象,则需要使用名称空间,用“#”来表示

如果访问的是一个根元素,则不用使用名称空间,可以直接访问根对象的属性。

根元素是放入ValueStack的Action对象,Struts2框架将实例化的Action对象放入ValueStack中

struts2框架还将parameters,request,response,session,application,attr等对象放到 ActionContext中,访问这些对象需要加前缀#

一个OGNL表达式若没有指定目标对象,默认就是从根对象开始查找

输出属性标签

1.显示Action中的属性值:<s:property value=“属性名” />

2.显示字符串,使用单引号:<s:property value="‘字符串’" />

3.显示默认值,Action中找不到指定的属性时,显示default属性的值:<s:property value=“属性名” default=“默认值” />

示例:

M

书类目录类

image.png

image.png

V

catalog.jsp

image.png

C

Action对象

image.png

struts.xml配置action

image.png

执行过程:

1.启动tomcat,地址栏输入url http://localhost:8080/struts1/catalogList,发起请求

2.根据struts.xml,调用BookAction类的showCatalog方法,处理

3.处理完,根据return,交给catalog.jsp响应

image.png

ActionSupport

再进行action定义时我们可以继承ActionSupport来简化开发,并规范代码

image.png

image.png


相关文章
|
存储 Python
【python基础知识】3.input()函数
【python基础知识】3.input()函数
1196 1
【python基础知识】3.input()函数
|
机器学习/深度学习 数据采集 算法
大数据分析案例-基于随机森林模型对北京房价进行预测
大数据分析案例-基于随机森林模型对北京房价进行预测
1313 0
大数据分析案例-基于随机森林模型对北京房价进行预测
|
Linux
linux(十四)文件和目录相关命令cat和more
linux(十四)文件和目录相关命令cat和more
264 0
|
消息中间件 存储 Java
场景题:如何提升Kafka效率?
场景题:如何提升Kafka效率?
241 0
场景题:如何提升Kafka效率?
|
安全 算法 数据安全/隐私保护
11K star!开源WAF的NO1,不花钱也能搞定安全
当我们的网站上线后首先会遇到什么,可能不一定是自己的客户,而是来自网络的攻击。 今天我们分享的开源项目,它是登顶GITHUB的开源WAF,让黑客不敢越雷池一步,并且还是国产的开源项目,它就是:雷池(SafeLine)
|
数据安全/隐私保护
BUUCTF---misc--snake
BUUCTF---misc--snake
|
SQL 缓存 关系型数据库
myCat 9066管理端口常用命令
myCat 9066管理端口常用命令
215 0
|
数据采集 算法 Python
python3的几个大坑
python3的几个大坑
116 1
|
存储 安全 Linux
操作系统:Linux vs Windows内核与应用对比(一)
操作系统:Linux vs Windows内核与应用对比
476 0
|
前端开发 UED
CSS3媒体查询简介与使用方法
CSS3媒体查询简介与使用方法
129 0