使用Struts2标签,需要先在页面中引入Struts2标签库:(标签库的位置在struts2-core-2.3.1.2.jar包中)
<%@ taglib prefix="s" uri="/struts-tags" %>
* Action 类接收数据的三种方式
* Action 类返回数据的方式
页面获取方式: <s:property value="username"/>
<s:property value="username"/>
<s:property value="userage"/>
</s:iterator>
注:
<s:propertory/>是一个输出标签:
说明:如果不写value属性,则直接输出栈顶元素。如果在对象栈中出现相同的元素,则会从上往下找,直到找到就停止了
2.Map栈的操作
把数据直接放到Map栈:ActionContext.getContext().put("a", "xxx");
页面获取方式:<s:property value="a"/> 或者 ${a}
把对象直接放到Map栈:ActionContext.getContext().put("a", user);
页面获取方式:<s:iterator value="#personList">
<s:property value="username"/>
<s:property value="userage"/>
</s:iterator>
把数据放到Request域:ServletActionContext.getRequest().setAttribute("a", "xxx");
页面获取方式:<s:property value="#request.a"/> 或者 ${requestScope.a}
页面获取方式:<s:property value="#request.a.username"/> 或者 ${requestScope.a.username}
把数据放到session域:ServletActionContext.getRequest().getSession().setAttribute("a", "xx");
把数据放到Application域:ServletActionContext.getServletContext().setAttribute("a", "xxx");
<%@ taglib prefix="s" uri="/struts-tags" %>
* Action 类接收数据的三种方式
1.使用Action属性接收 2.使用DomainModel接收 3.使用ModelDriven接收 (推荐使用)
* Action 类返回数据的方式
用OGNL表达式显示值栈中的数据的时候:
- 如果要访问对象栈中的值,直接访问属性即可。
- 如果要访问Map栈中的值,需要加#。
值栈(Map栈、对象栈)方式:
1.对象栈的操作
页面获取方式: <s:property value="username"/>
将对象放到栈顶:ActionContext.getContext().getValueStack().push("xxx");
页面获取方式: <s:property/>
将list存放到对象栈:ActionContext.getContext().getValueStack().push(userList);
页面获取方式: <s:iterator><s:property value="username"/>
<s:property value="userage"/>
</s:iterator>
注:
<s:propertory/>是一个输出标签:
说明:如果不写value属性,则直接输出栈顶元素。如果在对象栈中出现相同的元素,则会从上往下找,直到找到就停止了
2.Map栈的操作
把数据直接放到Map栈:ActionContext.getContext().put("a", "xxx");
页面获取方式:<s:property value="a"/> 或者 ${a}
把对象直接放到Map栈:ActionContext.getContext().put("a", user);
页面获取方式:<s:property value="a.username"/> 或者 ${a.username}
将list存放到Map栈:ActionContext.getContext().put("userList", userList);页面获取方式:<s:iterator value="#personList">
<s:property value="username"/>
<s:property value="userage"/>
</s:iterator>
把数据放到Request域:ServletActionContext.getRequest().setAttribute("a", "xxx");
页面获取方式:<s:property value="#request.a"/> 或者 ${requestScope.a}
把对象放到Request域:ServletActionContext.getRequest().setAttribute("a", user);
页面获取方式:<s:property value="#request.a.username"/> 或者 ${requestScope.a.username}
把数据放到session域:ServletActionContext.getRequest().getSession().setAttribute("a", "xx");
把数据放到Application域:ServletActionContext.getServletContext().setAttribute("a", "xxx");
页面获取方式同Request域