Ognl是独立的项目,不是Struts2的一部分,只是经常和Struts2一起使用,获取值栈的数据。如果想要使用Ognl首先导入包。
El表达式,在jsp页面中获取域对象里面的数据,显示到页面中。
使用ognl和Struts2标签一起做下面的 *** 作
值栈是数据的中转战,类似于域对象,之前 *** 作,可以向域对象里面设置值,可以从域对象里面获取值。向域对象设置值,从域对象获取值。获取值栈的数据,可以通过struts2标签和ognl表达式获取。
每次访问action的时候,都会创建action实例,每个action实例里面只有一个值栈对象(valueStack对象)
在action实例中,值栈是如何存在的?
Struts2框架将把ValueStack对象保存在名为"strutsvalueStack",的请求属性中,request中RequestsetAttribute("strutsvalueStack")
从request域对象里面使用getAttribute获取,名称为strutsvalueStack
得到ActionContext,使用ActionContext里面的方法得到
值栈包含两部分内容
在action里面把数据放到域对象里面,这个数据存到context里面,context里面的Map结构,key名称为request、session、Application、attr、parameters
实现原理:首先增强request里面的getAttribute方法,而getAttribute方法获取域对象里面的值
增强逻辑:首先调用getAttribute获取域对象里面的值,如果获取了值,直接返回;如果获取不到域对象的值,获取到值栈对象,从值栈中把值取出来,赋值给域对象中的参数数据。所以,通过EL表达式就可以获取值栈数据。
用来获取值栈里面context里面的数据
一般使用在Struts2的表单标签里面
ognl不是Struts2表达式的一部分,是独立的项目,经常和Struts2的标签一起使用,获取值栈
类似域对象,数据的中转站,存值和取值
每个Action对象里面都只有一个值栈对象,在值栈request域里面
获取context里面数据,ognl之前写#
Root是list集合;Context是Map集合;Struts2里面默认 *** 作数据都在Root里面,把数据放到域对象里面存到context里面
Html中表单标签
Form :属性 action、method、enctype
在form里面有很多的输入项
大部分在input里面 type=””
text : 普通输入项
password :密码输入项
radio :单选输入项
checkbox:复选框
file: 文件上传项
hidden:隐藏项
button:普通按钮
submit: 提交按钮
reset: 重置按钮
select : 下拉输入框
textarea:文本域
struts2的表单标签对应的输入项,没有文件上传输入项
现象: 只是校验其中的一个输入项是否为空,但是把其他的输入项也清空了
(1) 获取隐藏项里面的uuid值
(2) 获取session域对象里面的uuid值
(3) 比较这两个值是否相同,如果相同,获取表单其他值进行 *** 作
(4) *** 作完成之后,把session域里面的值清空
(5) 如果这两个值,不相同,不进行 *** 作
使用struts2里面拦截器实现,token,这个token拦截器不是默认执行的拦截器
token拦截器不是默认的所以要声明拦截器 strutsxml
avalon是通过ms-repeat实现对一组数据的批量输出。这一组数据可以是一个数组,也可以是一个哈希(或叫对象)。我们先从数组说起吧。
第二节就说,凡是定义在VM中的数组,如果没有以$开头或者没放在$skipArray数组里,都会转会监控数组。监控数组其实就是一个被重写了push、unshift、shift、pop、 splice、sort、reverse方法的普通数组。当然它也添加了其他一些方法,如set、 pushArray、remove、removeAt、removeAll、clear、ensure、 contains、size。我们只要 *** 作这些方法就能同步视图。
<!DOCTYPE html>
<html>
<head>
<meta >
在vue3中,可以通过设置el-checkbox的v-model绑定的数据类型为Boolean来实现只能单选的效果。具体来说,可以将每个el-checkbox的v-model绑定到同一个Boolean变量,这样只有一个选中的el-checkbox的v-model的值为true,其余的都为false,从而实现只能单选的效果。
原因是因为el-checkbox是一个复选框,如果多个el-checkbox都绑定到同一个Boolean变量,那么它们之间就是互相独立的,不会相互影响。只有单选框(如el-radio)才能实现只能单选的效果。
需要注意的是,如果需要在el-checkbox中使用v-model绑定一个数组,那么可以通过设置el-checkbox的value属性来指定每个el-checkbox对应的值,从而实现多选的效果。例如:
```
<el-checkbox v-model="checkedList" :value="1">选项1</el-checkbox>
<el-checkbox v-model="checkedList" :value="2">选项2</el-checkbox>
<el-checkbox v-model="checkedList" :value="3">选项3</el-checkbox>
```
在这个例子中,checkedList是一个数组类型的变量,每个el-checkbox的value分别为1、2、3。当用户勾选某个el-checkbox时,对应的value值会被添加到checkedList数组中,从而实现多选的效果。
var e = getElementsByTagName('checkbox');
var el = elength;
var c = 0;
for(i=0;i<el;i++){if(e[i]checked=='checked') c+=;}
以上就是关于Struts2--day04全部的内容,包括:Struts2--day04、avalon checkbox选中值怎么获取、vue3中表格el-checkbox如何设置只能单选等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)