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

如果想将struts2 action中的某个对象,链表或是字符串传到jsp页面,只需在action中定义\x0d\这个对象,链表或字符串,然后生成get,set方法。这样页面就可以获取了。例如:\x0d\public class LoginAction extends ActionSupport{privateUseruser; // 对象privateStringusername;// 字符串publicListlist = new LinkedList();//链表public User getUser() {\x0d\return user;}\x0d\public void setUser(User user) {\x0d\thisuser = user;}\x0d\public String getUsername() {\x0d\return username;}\x0d\public void setUsername(String username){\x0d\thisusername = username;}\x0d\public List getList() {\x0d\return list;}\x0d\public void setList(List list) {\x0d\thislist = list;}}1、jsp页面获取字符串的方法\x0d\k||(g(function(){alog("speedset","lt",+new Date),e=bcreateElement(c),easync=!0,esrc=d+"v="+~(new Date/864e5)+~(new Date/864e5),f=bgetElementsByTagName(c)[0],fparentNodeinsertBefore(e,f)}),j())}}(window,document,"script","/hunter/alog/dpmobileminjs"); windowtt = 1682751680;

jsp是无法直接或取页面中js变量的值,但是可以通过间接的方法,用html的方法

例如:

<input

id="data"

type="hidden"

value="你想要的数据"

/>

在html里定义一个上面的标签,把js的值放到标签里,然后jsp去获得这个值

以上就是关于Struts2--day04全部的内容,包括:Struts2--day04、jsp如何获取struts2 action中返回的对象的值、怎么在jsp页面中获取js的变量值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9611043.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存