开发者学堂课程【Java Web开发系列课程 - Struts2框架入门:ActionContext、ValueStack、OGNL】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/537/detail/7309
ActionContext、ValueStack、OGNL
目录:
一.LoginAction 代码
二.root 下的元素
三.栈顶元素
一. LoginAction 代码
package cn.sxt.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.util.ValueStack;
public class LoginAction
private String name;
private String pwd;
//处理方法public String execute()
System.out.println(name+"---"+pwd);
if("siggy".equals(name)&&"
1111
".equals(pwd))
//
获取
session
ActionContext.getContext().getSession().put("user", name);
ValueStack VS = ActionContext.getContext().getValueStack();
System.out.println("name=e="+vs.findString("name"));
u
ser user = new User( );
user.setName("张三疯")
return "success";
else
return"login";
return" success" ;
else
return"login
注:
ognl 表达式取的是值栈和 ActionContext 里面的数据,值栈的数据可取但是不可修改。值栈与 ActionContext 可以互取数据。
运行结果:
用户名:lisi 【action 中的属性】
用户名:【action 中的属性】
用户名:siggy——-----—---------退出
2.root 下的两个元素
LoginAction@263534c1
Default TextProvider@6f1a7e7f
3.栈顶元素
在 loginaction 中创建一个 user 对象
User user
=
new User();
user.setName("
张三疯
");
vs.push(user);
运行结果
Root 里面的元素会变成三个
elementData Object[2] (id=133)
User (id=98)
LoginAction (id=73)
(2)访问 pwd
用户名:pwd
"/>
[
action
中的属性]
用户名:----
>
运行结果
用户名:1111[action 中的属性]
用户名siggy-------------退出
(3)访问 name
用户名:name
"/>
[
action
中的属性]
用户名:----
>
运行结果
用户名:张三疯[action 中的属性]
用户名 siggy-------------退出
(4)1表示栈顶元素
用户名:[
action
中的属性]
用户名:----
>
结果:
用户名:siggy [action 中的属性]
用户名siggy-------------退出
注:
最新访问的是栈顶元素,访问 name 时将栈顶里面的元素覆盖,
一般不动值栈元素,要放在 action 中操作,相对于比较保险。
(5)访问 valuestack
用户名:[
action
中的属性]
用户名:valuestack.
[1].name"/>
[
action
中的属性]
用户名:
----
>
运行结果
用户名:siggy [action 中的属性]
用户名:[action 中的属性]
用户名:siggy_-------------退出
注:这种不可取