多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 往ValueStack的root区存数据 ### action属性方式 ~~~ public class HelloAction extends ActionSupport { private String username; public String getUsername() { return username; } public String index() { //往值栈的root区存数据 username = "jack"; //从值栈中获取数据 ValueStack valueStack = ActionContext.getContext().getValueStack(); String username = valueStack.findString("username"); System.out.println(username); return SUCCESS; } } ~~~ 页面:root区获取 数据不需要加#号,context区需要加#号. ~~~ <s:property value="username"></s:property> //类似调用valueStack.find('username') ~~~ ![](https://box.kancloud.cn/86f45ece329ba9f6cd4222265db5ccbb_1614x718.png) ### ValueStack的API方式 ~~~ public class HelloAction extends ActionSupport { public String index() { User user = new User(); user.setName("jack"); user.setAge(20); //获取root区 ValueStack valueStack = ActionContext.getContext().getValueStack(); CompoundRoot root = valueStack.getRoot(); //往root区存放数据 root.push(user); return SUCCESS; } } ~~~ 页面: ~~~ <s:property value="name"></s:property> <s:property value="age"></s:property> ~~~ ## 注意 不止当前访问的action在root区,如果当前action实现modelDriver接口,modelDriver接口里面封装的对象也在root区域.