Struts2中比较重要的一项就是值栈,还有ognl表达式,action内使用vs进行数据的储存,在jsp页面使用ognl表达式进行获取
1.值栈的结构
值栈由root区和contexMap区组成
- root区是一个list集合:
- contextMap区是map的结构,key 对应 value
contextMap区中有request,session和application
获取方式:
这里request,session和application的生命周期和servlet中的相同
2.ognl表达式
jsp页面主要用他的s:标签
- 导入标签
<%@ taglib uri="/struts-tags" prefix="s" %>
- 标签s:property 取值
<!-- 取值栈中session的值 -->
姓名---<s:property value="#session.login_message.name"/><br/>
密码---<s:property value="#session.login_message.password"/><br/>
年龄---<s:property value="#session.login_message.age"/><br/>
- 标签s:iterator 遍历集合元素
标签内需要加 # 取值
- 标签debug
点击查看值栈内数据的结构 - 标签if-else
判断属性是否为空<!-- 判断登录信息是否为空,如果是空就提示登录 --> <s:if test="#session.login_message!=null"> <h2>登录信息</h2> <!-- 取值栈中session的值 --> 姓名---<s:property value="#session.login_message.name"/><br/> 密码---<s:property value="#session.login_message.password"/><br/> 年龄---<s:property value="#session.login_message.age"/><br/> </s:if> <s:elseif test=""></s:elseif> <s:else> <script type="text/javascript"> alert("请先登录"); </script> </s:else>
- 标签set
var是名字,value是值,scope属性是范围, page/request/session/appliction<s:set var="list" value="newsList" scope="request"></s:set>
- 标签url
生成链接
var同样是名字,action是绝对路径
<s:url var="uu" action="News_getAll"></s:url>
到这里还有很多细节没有说,博客也写的一塌糊涂有时间补上emmmmmmmmmm