struts2的OGNL表达式(三)

2024-04-26 12:32
文章标签 表达式 struts2 ognl

本文主要是介绍struts2的OGNL表达式(三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,访问action基本属性和实体对象,

2,访问action集合/数组、访问Map、访问时运算、访问时调用方法、创建集合

3,访问action的静态属性和方法

4,访问其他5个就不说了,要加个#号引用即可

OGNLAction.java

package com.OGNL;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import com.opensymphony.xwork2.ActionSupport;public class OGNLAction  extends ActionSupport {private Integer id=1000;     //基本类型  private String name="tuke";  private User user=new User();   //实体对象  private List<String> employeeList=new ArrayList<String>();  //Listprivate Map<String, String> employeeMap=new HashMap<String, String>();   //Map  public static String str="this is static attribute"; //静态属性public String execute(){  //初始化实体对象  user.setName("tuke");  user.setSex("nan"); user.setAge("18");//初始化集合数据  employeeList.add("胡东");  employeeList.add("李成");  employeeList.add("张宇");  //初始化Map数据  employeeMap.put("黄药师", "工资5000");  employeeMap.put("刘寒", "工资8000");  employeeMap.put("江山", "工资7000");  return "success";  }  //静态方法public static  String getstatic(){return "this is action static result";}public Integer getId() {  return id;  }  public void setId(Integer id) {  this.id = id;  }  public String getName() {  return name;  }  public void setName(String name) {  this.name = name;  }  public User getUser() {  return user;  }  public void setUser(User user) {  this.user = user;  }public List<String> getEmployeeList() {return employeeList;}public void setEmployeeList(List<String> employeeList) {this.employeeList = employeeList;}public Map<String, String> getEmployeeMap() {return employeeMap;}public void setEmployeeMap(Map<String, String> employeeMap) {this.employeeMap = employeeMap;}  }

showresult.jsp

<%@ 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>演示结果</title></head> <body><h1>OGNL访问演示</h1><h2>1,基本属性</h2><h3>ID:<s:property value="id"/></h3><h3>姓名:<s:property value="name"/></h3><h2>2,Action中的对象</h2><h3>user的姓名:<s:property value="user.name"/></h3><h3>user的性别:<s:property value="user.sex"/></h3><h3>user的年龄:<s:property value="user.getAge()"/></h3><h2>3,list</h2>  <h3>集合中的员工:<s:property value="employeeList[1]"/></h3><h2>4,Map</h2>  <h3>Map中的员工工资:<s:property value="employeeMap.黄药师"/></h3>  <h2>5,访问时运算</h2>  <h3>My Name:<s:property value="'My name is '+name"/></h3>   <h2>6,访问时调用方法</h2>  <h3>MY NAME:<s:property value="name.toUpperCase()"/></h3>  <h2>7,创建集合</h2>  <h3>创建集合:<s:property value="{'a','b','c'}"/></h3>  <h3>集合类型:<s:property value="{'a','b','c'}.getClass().getName()"/></h3>  <h2>8,创建Map</h2>  <h3>创建Map:<s:property value="#{'mm':'MM','nn':'NN'}"/></h3>  <h3>Map类型:<s:property value="#{'mm':'MM','nn':'NN'}.getClass().getName()"/></h3><h2>9,静态方法和属性</h2> <h3>静态方法:<s:property value="@com.OGNL.OGNLAction@getstatic()"/></h3><h3>静态属性:<s:property value="@com.OGNL.OGNLAction@str"/></h3></body>
</html>

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts><!-- 访问action的静态方法和属性,一定要加上这两句常量 --><constant name="struts.devMode" value="true"/><constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant><package name="pp" extends="struts-default"><action name="ognlaction" class="com.OGNL.OGNLAction"><result name="success">/showresult.jsp</result></action></package>
</struts>    



这篇关于struts2的OGNL表达式(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/937594

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

06 C++Lambda表达式

lambda表达式的定义 没有显式模版形参的lambda表达式 [捕获] 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 有显式模版形参的lambda表达式 [捕获] <模版形参> 模版约束 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 含义 捕获:包含零个或者多个捕获符的逗号分隔列表 模板形参:用于泛型lambda提供个模板形参的名

Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor

我们需要引入包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>sp

如何掌握面向对象编程的四大特性、Lambda 表达式及 I/O 流:全面指南

这里写目录标题 OOP语言的四大特性lambda输入/输出流(I/O流) OOP语言的四大特性 面向对象编程(OOP)是一种编程范式,它通过使用“对象”来组织代码。OOP 的四大特性是封装、继承、多态和抽象。这些特性帮助程序员更好地管理复杂的代码,使程序更易于理解和维护。 类-》实体的抽象类型 实体(属性,行为) -》 ADT(abstract data type) 属性-》成

Java基础回顾系列-第三天-Lambda表达式

Java基础回顾系列-第三天-Lambda表达式 Lambda表达式方法引用引用静态方法引用实例化对象的方法引用特定类型的方法引用构造方法 内建函数式接口Function基础接口DoubleToIntFunction 类型转换接口Consumer消费型函数式接口Supplier供给型函数式接口Predicate断言型函数式接口 Stream API 该篇博文需重点了解:内建函数式

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

JavaSE(十三)——函数式编程(Lambda表达式、方法引用、Stream流)

函数式编程 函数式编程 是 Java 8 引入的一个重要特性,它允许开发者以函数作为一等公民(first-class citizens)的方式编程,即函数可以作为参数传递给其他函数,也可以作为返回值。 这极大地提高了代码的可读性、可维护性和复用性。函数式编程的核心概念包括高阶函数、Lambda 表达式、函数式接口、流(Streams)和 Optional 类等。 函数式编程的核心是Lambda

struts2中的json返回指定的多个参数

要返回指定的多个参数,就必须在struts.xml中的配置如下: <action name="goodsType_*" class="goodsTypeAction" method="{1}"> <!-- 查询商品类别信息==分页 --> <result type="json" name="goodsType_findPgae"> <!--在这一行进行指定,其中lis是一个List集合,但

逻辑表达式,最小项

目录 得到此图的逻辑电路 1.画出它的真值表 2.根据真值表写出逻辑式 3.画逻辑图 逻辑函数的表示 逻辑表达式 最小项 定义 基本性质 最小项编号 最小项表达式   得到此图的逻辑电路 1.画出它的真值表 这是同或的逻辑式。 2.根据真值表写出逻辑式   3.画逻辑图   有两种画法,1是根据运算优先级非>与>或得到,第二种是采