Struts2--day04

Struts2--day04,第1张

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如何设置只能单选等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9759401.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存