Java OGNL入门(Java环境当中使用)
发布日期:2021-06-29 15:01:58 浏览次数:2 分类:技术文章

本文共 2155 字,大约阅读时间需要 7 分钟。

OGNL入门(Java环境当中使用)

创建好web工程:

引入Struts2的jar包

1、访问对象的方法

import org.junit.Test;import ognl.Ognl;import ognl.OgnlContext;import ognl.OgnlException;/* * OGNL 在Java环境下的使用 */public class OgnlDemo1 {
@Test /* * OGNL如何调用对象的方法 */ public void demo1() throws OgnlException {
// 获得context OgnlContext context = new OgnlContext(); // 获得根对象 Object root = context.getRoot(); // 执行表达式: Object obj = Ognl.getValue("'helloworld'.length()", context, root); System.out.println(obj); }}

2、访问对象的静态方法

@Test	//访问对象静态方法	public void demo2() throws OgnlException {
OgnlContext context = new OgnlContext(); // 获得根对象 Object root = context.getRoot(); // 执行表达式:@类名@方法名 Object obj = Ognl.getValue("@java.lang.Math@random()*10", context, root); System.out.println(obj); }

3、获得Root当中的数据

创建一个User对象

package com.itzheng.struts2.domain;public class User {
private String username; private String password; public String getUsername() {
return username; } public void setUsername(String username) {
this.username = username; } public String getPassword() {
return password; } public void setPassword(String password) {
this.password = password; } public User() {
// TODO Auto-generated constructor stub } public User(String username, String password) {
super(); this.username = username; this.password = password; }}

访问Root当中的数据 不需要加#

@Test	// 访问Root当中的数据  不需要加#	public void demo3() throws OgnlException {
OgnlContext context = new OgnlContext(); // 执行表达式:@类名@方法名 User user = new User("aaa", "123"); context.setRoot(user);// 将User对象存储到了root当中 // 获得根对象 Object root = context.getRoot(); // 获取里面User当中的用户名和密码 Object username = Ognl.getValue("username", context, root); Object password = Ognl.getValue("password", context, root); System.out.println(username + " " + password); }

4、获得OgnlContext当中的数据。

@Test	// 访问context当中的数据  不需要加#	public void demo4() throws OgnlException {
OgnlContext context = new OgnlContext(); // 执行表达式:@类名@方法名 // 获得根对象 Object root = context.getRoot(); //向context当中存入数据 context.put("name","张三"); //执行表达式: Object obj = Ognl.getValue("#name", context, root); System.out.println(obj); }

转载地址:https://code100.blog.csdn.net/article/details/106834484 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Struts2的值栈(ValueStack),详解+图解
下一篇:OGNL,OGNL在Struts2环境当中的使用(入门)

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月06日 17时20分01秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

「重磅猜题之第二篇」2019年大学生电子设计竞赛 2019-04-29
知乎:硬件和软件哪个吃香? 2019-04-29
中国深圳,600架无人机的盛典! 2019-04-29
干货分享 JVM 之第 3 篇 —— Java 内存结构相关 2019-04-29
干货分享 JVM 之第 4 篇 —— 掌握 Jmeter 压力测试工具,熟悉 Jconsole.exe 工具 2019-04-29
干货分享 JVM 之第 5 篇 —— 类加载器 2019-04-29
干货分享 JVM 之第 6 篇 —— SpringBoot2.0 框架性能调优 2019-04-29
基于 Hystrix 高并发服务限流第 1 篇 —— 必须了解的相关概念 2019-04-29
基于 Hystrix 高并发服务限流第 2 篇 —— 服务隔离(线程池隔离、信号量隔离) 2019-04-29
基于 Hystrix 高并发服务限流第 3 篇 —— 服务熔断、服务降级 2019-04-29
基于 Hystrix 高并发服务限流第 4 篇 —— 基于 Feign 实现服务熔断降级处理 2019-04-29
基于 Hystrix 高并发服务限流第 5 篇 —— Hystrix 监控 2019-04-29
Eureka 如何快速的、优雅的停止某个微服务 2019-04-29
Eureka 实现安全认证 2019-04-29
基于 Hystrix 高并发服务限流第 6 篇 —— 服务限流,基于 RateLimiter 实现 2019-04-29
Nginx 反向代理、负载均衡配置、Location正则表达式 2019-04-29
SpringBoot + WebSocket 实现前后端的收发消息 2019-04-29
SpringBoot 整合 JWT 实现统一认证 2019-04-29
SpringBoot 使用 CompletableFuture 实现非阻塞异步编程 2019-04-29
即刻就业:本科毕业如何快速高薪就业? 2019-04-29