Cheug's Blog

当前位置:网站首页 / JAVA / 正文

Struts2[四]

2019-10-11 / JAVA / 1181 次围观 / 0 次吐槽 /

contextMap的数据操作

1、存数据

image.png

ActionContext存数据

image.png

利用ValueStack数据

image.png

2取数据

Struts2的标签(OGNL表达式)在JSP上(用的最多)

使用s:property取数据

image.png

contextMap里面ValueStack中对象的属性:直接写属性名

image.png

如果遇有对象属性重名,可以通过OGNL表达式,选择查找的起始位置

image.png

在jsp页面取值时,可以通过索引获取

image.png

特殊说明:当s:property不给定value属性时,默认取栈顶对象。

image.png

3valueStack其它方法

asetValue方法

image.png

image.png

bset方法

掌握压栈的顺序问题

image.png

cfindValue方法

jsp页面上的调用的都是findValue方法

image.png

4 StrutsEL取值顺序的改变

默认情况下EL查找顺序

表达取值必须是servlet四大作用域 由小到大排列为

pageContextpage > request > session > servletContextapplication

StrutsEL表达式的查找顺序的改变

OGNL表达式:page –> request  -> valueStack(根中)-> contextMap  ->  session  ->  application 

image.png

Struts标签OGNL配合使用

1iterator标签

image.png

2OGNL投影

使用过滤条件投影

image.png

使用指定属性投影

image.png

3、回顾Struts2#,$,%符号的使用(重要)

3.1#

a、取contextMapkey时使用,例如<s:property value="#name" />

bOGNL中创建Map对象时使用,例如:<s:radio list="#{'male':'','female':''}" />

3.2$

a、在JSP中使用EL表达式时使用,例如${name}

b、在xml配置文件中,编写OGNL表达式时使用,例如文件下载时,文件名编码。

struts.xml——>${@java.net.URLEncoder.encode(filename)}

3.3%

struts2中,有些标签的value属性取值就是一个OGNL表达式,例如<s:property value="OGNL Expression" />

还有一部分标签,value属性的取值就是普通字 符串,例如<s:textfield value="username"/>,如果想把一个普通的字符串强制看成时OGNL,就需要使用%{}把字符串套起来。

例如<s:textfield value="%{username}"/>

当然在<s:property value="%{OGNL Expression}" />也可以使用,但不会这么用

image.png

4Struts其它标签

s:set标签

² value:存入map中的值,是一个OGNL表达式

² var:存在map中的key

² scope:存储的范围application session request pageaction

² 不写scope,默认是action,它是在contextMap中和request中各存一份

image.png

image.png

s:action标签

image.png

image.png

s:if标签,s:elseif标签 s:else标签

² 相当于jstl中的c:choose c:wher c:otherwise

image.png

s:urls:a标签

image.png

表单小案例

目标

² 掌握checkboxlist的使用

² 掌握模型驱的原理

² 掌握struts主题的设置

image.png

image.png

image.png

image.png

模型驱动原理

strutsModelDrivenInterceptor 拦截器来完成的了模型动的工作

这个可以从struts-defualt.xml到这个拦截器

ModelDrivenInterceptor.java码分析

image.png

内部模型数据栈了

image.png

struts2中默认主题

² 默认主题的名称是XHTML,都是在struts的默认属性文件中定义着:default.properties

image.png

² 更改默认的主题方式

² 一:在标签内加theme属性

image.png

² 二:配置全局的theme

image.png

Powered By Cheug's Blog

Copyright Cheug Rights Reserved.