day02:structs2标签库

在这里插入图片描述

表单标签

<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语句)
在这里插入图片描述

<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
书类目录类
在这里插入图片描述
在这里插入图片描述

V
catalog.jsp
在这里插入图片描述

C
Action对象
在这里插入图片描述

struts.xml配置action
在这里插入图片描述

执行过程:
1.启动tomcat,地址栏输入url http://localhost:8080/struts1/catalogList,发起请求
2.根据struts.xml,调用BookAction类的showCatalog方法,处理
3.处理完,根据return,交给catalog.jsp响应

在这里插入图片描述

ActionSupport

再进行action定义时我们可以继承ActionSupport来简化开发,并规范代码
在这里插入图片描述

在这里插入图片描述
https://www.cnblogs.com/ningvsban/p/3734427.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值