day02:structs2标签库

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语句)

day02:structs2标签库

<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

书类目录类

day02:structs2标签库

day02:structs2标签库

V

catalog.jsp

day02:structs2标签库

C

Action对象

day02:structs2标签库

struts.xml配置action

day02:structs2标签库

执行过程:

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

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

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

day02:structs2标签库

ActionSupport

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

day02:structs2标签库

day02:structs2标签库


上一篇:SpringBoot开启热部署(修改html和静态资源不需要重启项目)


下一篇:前端小练习1:交叉观察器 页面元素入场动画