当前位置: 首页 > news >正文

ognl表达式

ognl表达式最关键的几句话

1:ognl context中的值,一般以#开头获取值(如果值放在值栈中#可以省略)

    例如:放在request作用域的name值,通过value=“#request.name”来获取

2:在ognl表达式中使用el表达式获取值,或先从值域中获取值,如果没有获取到再从值栈中获取值

3:其他一部分标签使用如下

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>

<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setAttribute("username","李白");
session.setAttribute("username","读普");
%>
<h1>表达式</h1>
<%=request.getAttribute("username") %><br>
<%=session.getAttribute("username") %>
<h1>el表达式</h1>
${username }<br>
${sessionScope.username }<br>
<h1>ognl表达式</h1>
<s:property value="#request.username"/><br>
<s:property value="#session.username"/>

 

<h1>ognl获取list的值</h1>
<!-- list默认存放在ognl context值栈中 -->
<s:set var="list" value="{'mike','rose','绽放三'}"></s:set>
<s:iterator value="list" id="s" >
${s }****
<!-- 默认获取值栈中的值 -->
<s:property/>++++
<!-- 获取值栈中具体的值 -->
<s:property value="s"/><br/>
</s:iterator>

<h1>获取map集合的值</h1>
<!-- map集合设置值时要在前面加“#“-->
<s:set var="maps" value="#{'key1':10,'key2':20,'key3':30}"></s:set>
<s:iterator value="maps">
<s:property/>*********
<s:property value="key"/>=<s:property value="value"/>+++++
${key }=${value }
<br/>
</s:iterator>


<h1>s:if标签</h1>
<s:if test="'mike' in {'jack','rose'}">
用户存在
</s:if>
<s:else>
用户不存在
</s:else>

</body>
</html>

转载于:https://www.cnblogs.com/JavaTWW/p/4510090.html

相关文章:

  • 直播APP关于后期运营你知道多少?
  • 【新手向】vim快捷注释与删除操作
  • Maven搭建SpringMVC+Mybatis项目详解
  • Access restriction: The method createJPEGEncoder(OutputStream) from the type JPEGCodec is not access
  • 路由器简单的基础实验
  • Android(java)学习笔记18:单例模式
  • 感受
  • 黑马程序员--C语言中的枚举
  • 父窗口中得知window.open()出的子窗口关闭事件
  • CYQ.Data 快速开发之UI(赋值、取值、绑定)原理
  • 码医自学法V2.2(附名老中医)
  • MVC 根据模板动态生成静态页面
  • 剑指OFFER之变态跳台阶(九度OJ1389)
  • Markdown 学习笔记
  • 服务计算与服务生态系统 第二章测验题答案
  • [译] React v16.8: 含有Hooks的版本
  • HashMap剖析之内部结构
  • java取消线程实例
  • nginx 配置多 域名 + 多 https
  • React系列之 Redux 架构模式
  • Sass 快速入门教程
  • TypeScript实现数据结构(一)栈,队列,链表
  • Yeoman_Bower_Grunt
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 基于游标的分页接口实现
  • 入手阿里云新服务器的部署NODE
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 探索 JS 中的模块化
  • 责任链模式的两种实现
  • 智能合约Solidity教程-事件和日志(一)
  • ​iOS实时查看App运行日志
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #控制台大学课堂点名问题_课堂随机点名
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (26)4.7 字符函数和字符串函数
  • (3)(3.5) 遥测无线电区域条例
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (Python第六天)文件处理
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (一)Java算法:二分查找
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)fock函数详解
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .net与java建立WebService再互相调用
  • @Autowired多个相同类型bean装配问题
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思