package tutorial.action;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.SessionAware;
import org.apache.struts2.util.ServletContextAware;
import tutorial.model.Book;
import com.opensymphony.xwork2.ActionSupport;
public class OgnlAction extends ActionSupport implements ServletRequestAware, SessionAware, ServletContextAware {
private static final long serialVersionUID = 1L;
private HttpServletRequest request;
private Map<String, String> session;
private ServletContext application;
private List<Book> books;
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
@SuppressWarnings("unchecked")
public void setSession(Map session) {
this.session = session;
}
public void setServletContext(ServletContext application) {
this.application = application;
}
public List<Book> getBooks() {
return books;
}
@Override
public String execute() {
request.setAttribute("userName", "Max From request");
session.put("userName", "Max From session");
application.setAttribute("userName", "Max From application");
books = new LinkedList<Book>();
books.add(new Book("978-0735619678", "Code Complete, Second Edition", 32.99));
books.add(new Book("978-0596007867", "The Art of Project Management", 35.96));
books.add(new Book("978-0201633610", "Design Patterns: Elements of Reusable Object-Oriented Software", 43.19));
books.add(new Book("978-0596527341", "Information Architecture for the World Wide Web: Designing Large-Scale Web Sites", 25.19));
books.add(new Book("978-0735605350", "Software Estimation: Demystifying the Black Art", 25.19));
return SUCCESS;
}
}
下面是Ognl.jsp的代码,内容如下:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Struts OGNL Demo</title>
</head>
<body>
<h3>访问OGNL上下文和Action上下文</h3>
<p>parameters: <s:property value="#parameters.userName" /></p>
<p>request.userName: <s:property value="#request.userName" /></p>
<p>session.userName: <s:property value="#session.userName" /></p>
<p>application.userName: <s:property value="#application.userName" /></p>
<p>attr.userName: <s:property value="#attr.userName" /></p>
<hr />
<h3>用于过滤和投影(projecting)集合</h3>
<p>Books more than $35</p>
<ul>
<s:iterator value="books.{?#this.price > 35}">
<li><s:property value="title" /> - $<s:property value="price" /></li>
</s:iterator>
</ul>
<p>The price of "Code Complete, Second Edition" is: <s:property FONT-SIZE: 12pt; mso-fareast-font-family: 宋体; mso-hansi-font-family: Arial; mso-fareast-language: ZH-CN">Code Complete, Second Edition'}.{price}[0]"/></p>
<hr />
<h3>构造Map</h3>
<s:set name="foobar" value="#{'foo1':'bar1', 'foo2':'bar2'}" />
<p>The value of key "foo1" is <s:property value="#foobar['foo1']" /></p>
</body>
</html>
分享到:
相关推荐
LabVIEW虚拟键盘程序 ...带一个示例程序,演示输入控件按下后弹出键盘。 可在触摸屏电脑系统里用以输入字符和数字。 这个程序不支持输入法的切换,不过我发布有另一个键盘程序可支持切换中文输入法来输入汉字。
在"InsertOutApp"这个项目中,很可能包含了一个示例程序或者代码库,演示了如何将外部.exe程序嵌入到C#窗体中。通过学习和分析这些代码,可以更直观地理解上述知识点,并实际操作以掌握这一技能。
在提供的“MOVEMENT.bas”文件中,很可能是用Basic语言编写的一个示例程序,展示了如何使用Trio控制器来驱动步进电机。Basic是一种简单易学的编程语言,常用于教育和嵌入式系统。 该示例程序可能包含以下几个关键...
首先,`snmp_testcmd.c` 是一个C语言编写的源代码文件,很可能是一个示例程序,展示了如何使用Netsnmp库发送SNMP命令。这个程序可能包括了初始化SNMP会话、设置目标主机和社区字符串、以及执行GET、SET或Trap操作等...
STM8示例程序(IAR环境)4-UartSTM8示例程序(IAR环境)4-UartSTM8示例程序(IAR环境)4-UartSTM8示例程序(IAR环境)4-UartSTM8示例程序(IAR环境)4-UartSTM8示例程序(IAR环境)4-UartSTM8示例程序(IAR环境)4-...
(2) 编写了一个示例程序,可以在XE5和D7下编译运行,且行为一致,和太傻串口调试软件进行了通信实验; 完整示例程序源码和执行程序;含XE5和D7结果截图; 编译示例程序无需安装SPCOMM控件; (3)为类TCOMM增加了一个...
标题中的“微软TTS例子程序源码”指的是微软的Text-to-Speech(TTS)技术的一个示例程序的源代码。TTS是一种计算机技术,它能够将文本转换为可听见的语音,使得计算机系统能够“读出”文本,对视觉障碍用户或者在不...
1、使用NModbus4.dll通讯插件开发的一个示例程序, 2、基于ModbusTCP通讯协议,电脑端可做为主站去读从站数据(如:PLC),同时电脑端也可以作为从站,让外部系统读取(如:MES、PLC等等)。 3、通过电脑端可以实现...
小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss...
3. **ADC(模数转换)**:ATmega8内置一个10位ADC,可以将模拟信号转化为数字值。示例代码可能涵盖初始化ADC,选择参考电压,设置转换通道,并读取转换结果的过程。 4. **DAC(数模转换)**:虽然ATmega8本身不支持...
STM8示例程序(IAR环境)5-BeepSTM8示例程序(IAR环境)5-BeepSTM8示例程序(IAR环境)5-BeepSTM8示例程序(IAR环境)5-BeepSTM8示例程序(IAR环境)5-BeepSTM8示例程序(IAR环境)5-BeepSTM8示例程序(IAR环境)5-...
在实践中学习是掌握编程的最好方式,因此,对于每一个标签为"C语言例子程序"的文件,都应该仔细研究并尝试修改,以增强自己的编程能力。记住,编程是一门实践性极强的技艺,理论知识与实践经验相结合,才能在编程...
关键字检索是软件体系结构的一个经典案例,这里给出了一个程序示例.本例采用使用共享数据的主程序/子程序结构,根据四个基本功能将问题分解为:输入、移动、按字母表排序、输出。所有计算构件作为子程序协同工作并且...
让马达按规定速度一直转动 一直正转或者反转程序例子 中途走了一节 停止了 如何重新启动程序例子 当前定位数据监控 和如何将当前位置清零程序例子 M代码使用例子直线插补 圆弧插补程序例子QD77 驱动器参数设置程序...
标题中的“LCD12864说明书+例子程序(1).rar”表明这是一个包含LCD12864显示屏使用说明和示例程序的压缩文件,适用于STC12C5A60S2单片机。 STC12C5A60S2是宏晶科技生产的一款8位单片机,拥有丰富的I/O端口和内置...
西门子工业网络通信例子程序7.zip 是一个包含与西门子工业网络通信相关的示例程序的压缩包。这个程序集通常用于教育、学习或在实际项目中作为参考,帮助用户理解和实现工业设备间的网络通信,尤其是使用西门子产品时...
"纸牌.DLM"这个文件可能是SDK中的一个示例程序或者数据文件。在C# SDK编程中,"DLM"可能代表“动态链接库”(Dynamic Link Library),这是一种共享库文件,包含可由多个程序同时使用的代码和数据。开发者可以将常用...
| |----> exe -- 一些已编译的可执行示例程序 |----> forms -- 和form 库相关的程序 |----> menus -- 和menus 库相关的程序 |----> panels -- 和 panels 库相关的程序 |----> Makefile -- 一级目录的下的 ...
绝对定位 相对定位 速度 位置 单独连续控制 设置程序例子 让马达按规定速度一直转动 一直正转或者反转程序例子 中途走了一节 停止了 如何重新启动程序例子 当前定位数据监控 和如何将当前位置清零程序例子 M代码...