Struts13---Ognl
模拟初始化的jsp页面 <body>
<a href="user/login">登录</a> </body>
public class User { private String name; //只要和前台页面name属性值一致
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public User(String name, int age) {
super();
this.name = name;
this.age = age;
}
public User() {
super();
} }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true"/>
<package name="default" namespace="/" extends="struts-default">
</package>
<!-- 引入关联的xml文件 -->
<include file="user.xml"/>
</struts>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="user" namespace="/user" extends="default">
<action name="login" class="cn.bdqn.action.UserAction" method="login">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="user" namespace="/user" extends="default">
<action name="login" class="cn.bdqn.action.UserAction" method="login">
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
public class UserAction extends ActionSupport{ public String login(){
System.out.println("进入了login"); //因为valueStack对象保存在了请求作用域中!所以必须获取request对象
Map<String, Object> request= (Map<String, Object>)
ActionContext.getContext().get("request");
//向作用域中传递一个值
request.put("name", "小黑黑"); //获取ValueStack对象
ValueStack valueSatck= (ValueStack) request.get("struts.valueStack");
System.out.println("valueSatck的值是==》"+valueSatck);
/**
* valueSatck的值是==》com.opensymphony.xwork2.ognl.OgnlValueStack@5c5e85d3
* OgnlValueStack:是我们需要研究的对象! 是ValueStack的实现类!
*/
/**
* 向值栈中增加数据
* 前台的s:debug中的Value Stack Contents中,
* 增加了 name和age两个属性!
* Value Stack Contents就是 CompoundRoot对象!
* 这里面的内容!直接获取!
*/
valueSatck.getRoot().add(0, new User("小白",50));
/**
* 向栈的上下文中增加数据 就是 前台 s:debug中的Stack Context
* key:requestName
* value:大家辛苦了
*/
valueSatck.getContext().put("requestName", "大家辛苦了");
Map<String,Object> map=new HashMap();
map.put("1", "这是在Stack Context中");
map.put("2", "必须使用#才能访问我");
valueSatck.getContext().put("map",map); return "success";
} }
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'success.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:property value="name"/>
<s:property value="age"/> <br/> <%--
01.requestName 确实是在我们的栈上下文中的 key
如果对应的值是一个具体的数值! 不用使用# 02.request是一个作用域,
作用域中肯定有很多对象或者是属性!
如果想获取某个具体的对象应该使用#
--%>
<s:property value="requestName"/>
<s:property value="#request.name"/> <s:debug/>
</body>
</html>
Struts13---Ognl的更多相关文章
- Struts2入门(五)——OGNL和标签库
一.前言 OGNL和标签库的作用,粗暴一点说,就是减少在JSP页面中出现java代码,利于维护. 1.1.OGNL 1.1.1.什么是OGNL? OGNL(Object-Graph Navigatio ...
- Ognl表达式基本原理和使用方法
Ognl表达式基本原理和使用方法 1.Ognl表达式语言 1.1.概述 OGNL表达式 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,他是一个 ...
- 4. ValueStack 和 OGNL
1. 属性哪来的 当我们通过Action处理完用户请求以后,可以直接在页面中获取到 action 的属性值. 如果我们在页面中尝试遍历四个域中的属性,会发现域中并没有username之类的Action ...
- Struts2中的Ognl
OGNL(Object-Graph Navigation Language)全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对象的方法,能够遍历整 ...
- Struts2(Ognl)
OGNL(Object-Graph Navigation Language)全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对象的方法,能够遍历整 ...
- Strust OGNL详解
首先了解下OGNL的概念: OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的 ...
- Struts2深入学习:OGNL表达式原理
今天看了ognl表达式,不是很理解,准备以后再回头复习: http://developer.51cto.com/art/201203/322509.htm#case1
- OGNL的使用
访问Action中的普通属性: <s:property value="loginname"/><br/> 访问Action中的对象属性: <s:pro ...
- Struts2的OGNL表达式语言
一.OGNL的概念 OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者 ...
- Struts 2的OGNL的根对象
Struts2中的OGNL表达式语言是对Xwork的OGNL的封装.我们要理解一下几点: 1. Struts2中将ActionContext作为OGNL的上下文环境(ActionContext内部含有 ...
随机推荐
- linux 虚拟机设置好固定ip 修改了 dns 网络需要设置成桥接模式
linux 虚拟机设置好固定ip 修改了 dns 网络需要设置成桥接模式 可以修复网络连接(浏览器返回 server not found)
- Linux数据备份与恢复 dump、restore、dd命令
dump命令:备份分区.文件或目录 在Linux系统中 dump 命令是没有安装的,所以先安装一下 dump 命令,安装命令如下: [root@localhost -]# yum -y install ...
- 企业和开发人员究竟该如何适应web标准?
以下几点注意事项仅供参考:完善的前期策划和分析完善的前期逻辑模型以及项目规范性文档的制定尽可能将行政性干预移到策划阶段(按照国内的情况,做到这一点可能很困难)尽可能向后兼容,在项目规范性文档制定阶段对 ...
- centos6.9 升级glibc(升级到 2.17版)
原系统centos6.9自带GLIBC_2.12,安装一些软体提示版本不对,决定升级. wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz tar ...
- hadoop namenode HA集群搭建
hadoop集群搭建(namenode是单点的) http://www.cnblogs.com/kisf/p/7456290.html HA集群需要zk, zk搭建:http://www.cnblo ...
- 20145322第九周JAVA程序设计基础学习总结
20145322第九周JAVA程序设计基础学习总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联机数据库的标准规范.它定义一组标准类与接口,应用程序需要 ...
- 求CRC16校验
unsigned short DialogSerial::crc_ccitt(unsigned char *q,int len){ unsigned short ccitt_table[256] = ...
- Java之JNDI详解
转载自(http://blog.csdn.net/u010430304/article/details/54601302) JNDI的基本应用 JNDI是Java Naming and ...
- centos配置yum源为中国镜像源
有时候CentOS默认的yum源不一定是国内镜像,导致yum在线安装及更新速度不是很理想.这时候需要将yum源设置为国内镜像站点.国内主要开源的开源镜像站点应该是网易和阿里云了. 修改CentOS默认 ...
- Python基础笔记系列八:字符串的运算和相关函数
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 字符串的运算1.字符串的加法和乘法 python中不但支持字符串相加,还支 ...