`
txyly998
  • 浏览: 110981 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

一个例子程序

    博客分类:
  • OGNL
阅读更多
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虚拟键盘程序 分两个键盘,一个是输入数字的,一个是输入字符串的 带一个示例程序,演示输入控件按下

    LabVIEW虚拟键盘程序 ...带一个示例程序,演示输入控件按下后弹出键盘。 可在触摸屏电脑系统里用以输入字符和数字。 这个程序不支持输入法的切换,不过我发布有另一个键盘程序可支持切换中文输入法来输入汉字。

    c#嵌入一个外部exe程序到程序窗体

    在"InsertOutApp"这个项目中,很可能包含了一个示例程序或者代码库,演示了如何将外部.exe程序嵌入到C#窗体中。通过学习和分析这些代码,可以更直观地理解上述知识点,并实际操作以掌握这一技能。

    trio步进控制例子程序

    在提供的“MOVEMENT.bas”文件中,很可能是用Basic语言编写的一个示例程序,展示了如何使用Trio控制器来驱动步进电机。Basic是一种简单易学的编程语言,常用于教育和嵌入式系统。 该示例程序可能包含以下几个关键...

    netsnmp例子程序

    首先,`snmp_testcmd.c` 是一个C语言编写的源代码文件,很可能是一个示例程序,展示了如何使用Netsnmp库发送SNMP命令。这个程序可能包括了初始化SNMP会话、设置目标主机和社区字符串、以及执行GET、SET或Trap操作等...

    STM8示例程序(IAR环境)4-Uart

    STM8示例程序(IAR环境)4-UartSTM8示例程序(IAR环境)4-UartSTM8示例程序(IAR环境)4-UartSTM8示例程序(IAR环境)4-UartSTM8示例程序(IAR环境)4-UartSTM8示例程序(IAR环境)4-UartSTM8示例程序(IAR环境)4-...

    SPCOMM 虚拟串口 示例程序 XE5和D7

    (2) 编写了一个示例程序,可以在XE5和D7下编译运行,且行为一致,和太傻串口调试软件进行了通信实验; 完整示例程序源码和执行程序;含XE5和D7结果截图; 编译示例程序无需安装SPCOMM控件; (3)为类TCOMM增加了一个...

    微软TTS例子程序源码

    标题中的“微软TTS例子程序源码”指的是微软的Text-to-Speech(TTS)技术的一个示例程序的源代码。TTS是一种计算机技术,它能够将文本转换为可听见的语音,使得计算机系统能够“读出”文本,对视觉障碍用户或者在不...

    VS2017,C#,WinForm,ModbusTCP(Slave从站、Master主站)DEMO示例程序

    1、使用NModbus4.dll通讯插件开发的一个示例程序, 2、基于ModbusTCP通讯协议,电脑端可做为主站去读从站数据(如:PLC),同时电脑端也可以作为从站,让外部系统读取(如:MES、PLC等等)。 3、通过电脑端可以实现...

    小程序直传oss示例小程序直传oss示例

    小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss示例小程序直传oss...

    ATmega8 示例程序

    3. **ADC(模数转换)**:ATmega8内置一个10位ADC,可以将模拟信号转化为数字值。示例代码可能涵盖初始化ADC,选择参考电压,设置转换通道,并读取转换结果的过程。 4. **DAC(数模转换)**:虽然ATmega8本身不支持...

    STM8示例程序(IAR环境)5-Beep

    STM8示例程序(IAR环境)5-BeepSTM8示例程序(IAR环境)5-BeepSTM8示例程序(IAR环境)5-BeepSTM8示例程序(IAR环境)5-BeepSTM8示例程序(IAR环境)5-BeepSTM8示例程序(IAR环境)5-BeepSTM8示例程序(IAR环境)5-...

    程序设计入门必备例子程序

    在实践中学习是掌握编程的最好方式,因此,对于每一个标签为"C语言例子程序"的文件,都应该仔细研究并尝试修改,以增强自己的编程能力。记住,编程是一门实践性极强的技艺,理论知识与实践经验相结合,才能在编程...

    KWIC 程序示例 (关键字检索程序)

    关键字检索是软件体系结构的一个经典案例,这里给出了一个程序示例.本例采用使用共享数据的主程序/子程序结构,根据四个基本功能将问题分解为:输入、移动、按字母表排序、输出。所有计算构件作为子程序协同工作并且...

    三菱PLC QD77MS 程序例子 Q手册.zip

    让马达按规定速度一直转动 一直正转或者反转程序例子 中途走了一节 停止了 如何重新启动程序例子 当前定位数据监控 和如何将当前位置清零程序例子 M代码使用例子直线插补 圆弧插补程序例子QD77 驱动器参数设置程序...

    LCD12864说明书+例子程序(1).rar

    标题中的“LCD12864说明书+例子程序(1).rar”表明这是一个包含LCD12864显示屏使用说明和示例程序的压缩文件,适用于STC12C5A60S2单片机。 STC12C5A60S2是宏晶科技生产的一款8位单片机,拥有丰富的I/O端口和内置...

    西门子工业网络通信例子程序7.zip

    西门子工业网络通信例子程序7.zip 是一个包含与西门子工业网络通信相关的示例程序的压缩包。这个程序集通常用于教育、学习或在实际项目中作为参考,帮助用户理解和实现工业设备间的网络通信,尤其是使用西门子产品时...

    SDK例子程序.rar_C# SDK_SDK_SDK编程

    "纸牌.DLM"这个文件可能是SDK中的一个示例程序或者数据文件。在C# SDK编程中,"DLM"可能代表“动态链接库”(Dynamic Link Library),这是一种共享库文件,包含可由多个程序同时使用的代码和数据。开发者可以将常用...

    NCURSES-Programming 文档示例程序

    | |----&gt; exe -- 一些已编译的可执行示例程序 |----&gt; forms -- 和form 库相关的程序 |----&gt; menus -- 和menus 库相关的程序 |----&gt; panels -- 和 panels 库相关的程序 |----&gt; Makefile -- 一级目录的下的 ...

    三菱PLC QD77MS 多个程序运用例子+参数手册.zip

    绝对定位 相对定位 速度 位置 单独连续控制 设置程序例子 让马达按规定速度一直转动 一直正转或者反转程序例子 中途走了一节 停止了 如何重新启动程序例子 当前定位数据监控 和如何将当前位置清零程序例子 M代码...

Global site tag (gtag.js) - Google Analytics