8.struts2_OGNL
来源:互联网 发布:u盘在mac上什么都没有 编辑:程序博客网 时间:2024/05/21 08:36
1.关于值栈
1)helloworld时,${productName}读取productName时,实际上属性并不在request等域中,而是从值栈中读取。
2)ValueStack: 可以从ActionContext中获取值栈对象
其分为两个逻辑部分>Map栈:实际上是OgnlContext类型,是一个Map,ActionContext的引用,里面保存呢这
各种Map,如sessionMap,requestMap等。
>对象栈:CompoundRoot类型,是一个使用ArrayList定义的栈,存储各种当前Action实例相关
2.Struts2使用s:property标签 和ognl表达式来读取值栈中的属性值。
1)值栈中的属性值: 对象栈>某一对象的属性值;;Map栈>request,session,applicaion,属性值或请求参数值
使用ognl时,导入struts2标签:
<span style="white-space:pre"></span><%@ taglib prefix="s" uri="/struts-tags" %>
使用debug标签可以方便开发者查看值栈中的情况
<s:debug></s:debug>
页面实例:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>My JSP 'details.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> <s:debug></s:debug> ProductName :<s:property value="[1].productName"/> <br> ProductDesc :<s:property value="[1].productDesc"/> <br> ProductPrice :${productPrice} <br> productPrice:<s:property value="[0].productPrice"/> <br> <br><br> ProductName1: ${sessionScope.product.productName } <!-- 读取Map栈里的数据,存在request等对象里的值 --> <s:property value="#session.product.productName"/> <br><br> ProductName2: ${requestScope.test.productName } <br><b> <!-- 使用OGNL调用public类静态方法 --> <s:property value="@java.lang.Math@PI"/> <br><b> <s:property value="@java.lang.Math@cos(0)"/> <!-- 调用对象栈的方法 --> <s:property value="setProductName('hcx')"/> <br> <s:property value="productName"/><br> <!-- 调用数组对象的属性 --> <% String [] names = new String[]{"aa","bb","cc"}; request.setAttribute("names",names); %> length:<s:property value="#attr.names.length"/> <br> names[2]:<s:property value="#attr.names[2]"/> <br><br> <% Map<String,String> letters= new HashMap<String,String>(); letters.put("AA","a"); request.setAttribute("letters",letters); %> <!--使用ognl访问map --> Map大小: <s:property value="#attr.letters.size"/> <br><s:property value="#attr.letters['AA']"/> </body></html>
0 0
- 8.struts2_OGNL
- Struts2_OGNL
- Struts2_OGNL
- 01 Struts2_OGNL
- Struts2_ognl表达式
- Struts2_OGNL与VS
- 16-17. Struts2_OGNL
- struts2_ognl和valueStack简介
- Struts2_OGNL和值栈
- (15)Struts2_OGNL读取Object栈
- struts2_ognl表达式符号的使用方法
- struts2_ognl表达式与值栈
- 11级_Java_曹建波 03.06 Struts2_ognl
- 15.Struts2_OGNL读取对象栈(ObjectStack)属性
- (16)Struts2_OGNL读取Map栈及其他字段和方法属性
- 16.Struts2_OGNL读取Map栈(Context Map)里对象的属性及其他字段和方法
- 8.timeGetTime
- 8. 格式
- 巴菲特致股东的一封信:1984年
- Android下免Root权限截屏
- java session共享
- 【编程之旅】关于传输剩余时间估算那些事儿
- String to Integer (atoi)
- 8.struts2_OGNL
- VS2008中"fatal error C1083:无法打开包括文件:“Stdafx.h”: No such file or directory
- PAT B1004 成绩排名
- 关于对于一个浮动图片的控制
- 巴菲特致股东的一封信:1983年
- 实战篇:如何建设企业的营销管理和分析平台
- STARTUP.A51 文件分析
- 朴素贝叶斯分类器
- sd