Struts2学习第三天(OGNL-ValueStack-标签库)

分布式推理服务(策略:数据并行、张量并行、流水线并行、专家并行)技术分析 摘要:分布式推理突破单GPU内存和算力限制,支持大模型部署。四种核心策略包括: 数据并行:复制模型拆分数据,提升吞吐但内存效率低; 流水线并行:模型分阶段执行,支持超大模型但存在计算气泡; 张量并行:拆分层内矩阵运算,延迟低但通信开销大; 专家并行:动态激活MoE模型专家,计算高效但路由复杂。实际应用中常组合策略(如3D并行),需权衡模型规模、硬件条件与性能目标。 阅读详情

OGNL

首先了解下OGNL的概念:OGNL是Object-Graph NavigationLanguage的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对象的方法,能够遍历整个对象的结构图,实现对象属性类型的转换等功能。

OGNL中重要的3个符号:#、%、$:
#:

  • 用来访问值栈中的Context区域.
  • 用来构造Map(在struts的标签库使用,如:checkbox,radio,select标签),eg:
    #{‘key1’:‘value1’, ‘key2’:‘value2’}。

%:

  • 用途是在标志的属性为字符串类型时,计算OGNL表达式的值,这个类似js中的eval,很暴力。

$:

  • 在xml文件中获取Action类中字段的值(提供getter方法)

ValueStack

值栈是对应每一个请求对象的轻量级的内存数据中心。
每一次请求的时候,都会创建一个新的ValueStack对象(Action也是新的),该ValueStack对象封装了这一次请求相关的数据信息.
1).ValueStack实际是一个接口,在Struts2中利用OGNL时,实际上使用的是实现了该接口的OgnlValueStack类,这个类是Struts2利用OGNL的基础。
2).ValueStack贯穿整个Action的生命周期(一次请求):每个Action类的实例都拥有一个ValueStack对象。
ValueStack相当于数据的中转站,在其中保存该次请求和当前Action对象和其他相关对象信息。
3).Struts2框架把ValueStack对象保存在名为“struts.valueStack”的request属性中(意味着可用ActionContext对象去获取)。

  • ValueStack内部结构(可通过标签<s:debug/>在网页中查看):
    root: 类型: CompoundRoot extends ArrayList : 表示栈的数据结构(后进先出)
    context: 类型: Map: : 上下文
    如图:
  • 获取ValueStack对象的三种方式:
  • 在root区域存放数据:

在这里插入图片描述
在jsp取数据:

 若:放入root中的数据,没有属性名:<s:property value="[0].top"/>
 若:放入root中的数据有属性名:   <s:property value="属性名"/>
 如:
<!-- 方式一,二: -->
<s:property value="[0].top"/>
<!-- 方式三,四: -->
<s:property value="[hello1"/>
<s:property value="hello2"/>

注意:key同名会覆盖value,建议使用方式3和4时,不要使用方式1和2因为不能保证数据在栈顶.!!!同时也推荐使用方式3和4比较方便

  • 在Context区域存放数据:

  • 在jsp取数据:
<%@ taglib uri="/struts-tags"  prefix="s"%>
<s:property value="#hello1"/><br/>
<s:property value="#hello2"/><br/>
<s:property value="#session.USER_IN_SESSION"/>
<s:property value="#application.username"/>
<hr/>
<!--EL可以访问ValueStack中的数据,但不推荐-->
${requestScope.hello1}<br/>
${hello2}<br/>
${sessionScope.USER_IN_SESSION}
${applicationScope.username}

Struts2的标签库:

标签库详细演示可参考此博客:https://blog.youkuaiyun.com/yaerfeng/article/details/51279409
(或在struts2的官方文档中查看)

  • 通用标签
  • 表单标签
有限元之有限元空间的构造 主要介绍有限元的空间构造方法。 阅读详情

相关推荐

Fedproto:原型聚合的联邦学习框架

文中说明,联邦学习通过计算传递梯度聚合模型时,客户端之间的异构性通常会阻碍模型优化收敛和泛化性能。故本文提出新的FedProto框架,将梯度替换成为原型,通过计算、聚合从不同客户端收集到的本地原型,然后将全局原型发送回所有客户端,以规范本地模型的训练。对每个客户机进行局部训练的目的是最小化对本地数据的分类损失,同时保持生成的本地原型足够接近相应的全局原型(损失函数最小+正则)。什么是原型?文中提到:“

weixin_47754029的博客 2649

struts2的ognl表达式学习心得

经过一段时间的闭关练习,终于对struts2有所了解.其实struts2并不难,一看就能明白其中奥妙.我对struts2的验证体系保留怀疑态度,因为它的验证消息使用标签打在页面上,实在太丑,在真实项目中不知道是否有人这么做.也许是我太菜了,还不知道如何将验证消息显示得更友好,希望

冷雨夜@leon 8675

ABB机器人发送实时位置给PLC

本文使用中断方式实现,多任务要订购ABB功能包 Profinet总线组变量配置 注:映射为16位和32位均可用 声明数据 VAR num CurrentExAxisPos;!外轴位置 VAR robtarget pCurrentPos;!实时位置 var intnum TrapNum;!中断号 初始化开中断 IDelete TrapNum;!中断号 CONNECT TrapNum WITH iTrapCurPos;!连接中...

澍澍爸的blog 6775

ValueStack详解:EL和OGNL用法

最近在做一个OA的项目,经常出现因为 ${name} 和${#name}的区别导致,界面数据显示不出来。        所以需要对这两种使用方法进行总结一下。什么是值栈        值栈包含两个部分:Stack和Map。在对象栈Stack中存放的是一个个对象,Map中存放的是键值对。struts2的工作流程 左侧的分别为struts2的各种拦截器。值栈解析对于页面请求:xx.action?i

赵崇 2430

手把手教你用YOLOv11-seg-LSCD搞定树脂件瑕疵检测(附数据集与代码)

本文详细介绍了如何使用YOLOv11-seg-LSCD模型进行工业级树脂件瑕疵检测,包括环境配置、数据集构建、模型训练与调优、部署优化等全流程。通过LSCD模块的创新设计,有效提升了气泡、裂纹等微小缺陷的检测精度,适用于各类树脂制品的质量检测场景。

weixin_28677005的博客 418

Struts2学习笔记__Struts标签库和OGNL

Struts2 标签库概述  Struts2标签库相对struts1.x进行了巨大的改进,支持OGNL表达式,不再依赖任何表现层技术。  我们可以在struts2-core-2.5.8.jar压缩文件的META-INF目录下找到struts-tags.tld文件,这个文件#定义了Struts2的标签。 Struts2可以将所有标签分成三类:  用户界面标签(UI标签):主要用来生成HTML元...

茨时代べ 的博客 350

AI应用工程师面试指南与参考答案

摘要:AnkerAI应用工程师职位面向2024/25届毕业生,要求计算机相关专业背景,强调工程实现与技术探索能力。岗位职责包括全栈开发、AI技术整合(如大模型、图像识别)、团队AI赋能及系统优化。职位更看重编程实践能力(Python/Java等)和学习潜力,而非单纯算法知识。成功候选人将参与智能化产品开发,获得导师指导和技术成长机会。面试准备应聚焦项目经验展示、业务需求理解和技术解决方案能力,通过结构化回答和实操案例体现工程思维与创新潜力。

郑伟强dev的专栏 407

struts2之OGNL和struts2标签库和ValueStack对象

struts2之OGNL和struts2标签库和ValueStack对象 OGNL简介:    (1)OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。     struts2框架默认就支持Ognl表达式语言(所以struts必须引用的包:ognl.jar);   (2...

HiterCoder 129

语言模型推理能力与计算表达力深度解析

语言模型的推理能力本质上是一种知识迁移与泛化应用的过程,其核心在于Transformer架构中的自注意力机制和前馈网络的协同作用。计算表达力作为衡量模型能力的关键指标,涉及函数逼近、组合泛化和上下文理解等多个维度。随着模型规模的扩大,涌现能力现象揭示了参数规模与推理能力之间的非线性关系。在实际应用中,通过提示工程和微调策略可以有效激活和优化模型的推理表现。当前研究正探索模块化架构和世界模型整合等方向,以突破长程推理和因果关系建模等前沿挑战。本文深入探讨了语言模型推理泛化的技术原理与实践方法,为理解计算表达力

weixin_42521032的博客 341

HFSS实战项目——高带外抑制特性SIW带通滤波器

本文对单级滤波器和双级滤波器的设计、工作原理及仿真结果进行了详细分析,并验证了双级SIW带通滤波器在性能方面的优越性,为微波通信系统中滤波器的设计和应用提供了重要参考。

2401_87464239的博客 1812

Struts2标签库 + OGNL

OGNL( object graph navigation Language对象图导航语言) 和Struts 的标签库

man_tou_22 393

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Struts2 OGNL valueStack

总结一: ActionContext是Action的资源环境,每一次Action请求都会创建一个新的ActionContext,并且每一个ActionContext都是不同的(一次Action请求完毕,对应的ActionContext即销毁。但是,如果请求是在两个action之间转发而不是重定向,则任然用的是同一个ActionContext对象)。 ActionContext中包含:reque

jinsong1213的专栏 610

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Struts2数据传输的背后机制:ValueStack(值栈)

1.     数据传输背后机制:ValueStack(值栈)<br /> <br />在这一切的背后,是因为有了ValueStack(值栈)!<br /> ValueStack基础:OGNL<br />要了解ValueStack,必须先理解OGNL(Object Graphic Navigatino Language)!<br />OGNL是Struts2中使用的一种表达式语言,它可以用于JSP的标签库中,以便能够方便的访问各种对象的属性;它用于界面将参数传递到Action(并进行类型转换)中;它还可以用于

李腾飞的专栏 3万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Struts2框架--------OGNL和valueStack

OGNL简介 OGNL的全称是ObjectGraph Navigation Language(对象图导航语言),它是一种强大的表达式语言,让你通过简单一致的表达式语法来读取和设置Java对象的属性值,调用对象的方法,遍历整个对象的结构图,实现字段类型转换等功能。 OGNL先在WebWork项目中得到应用,也是Struts 2框架视图默认的表达式语言,可以说,OGNL表达式是Struts

u012176984的专栏 639

struts2学习笔记(五)—— OGNL

一、OGNL概述 1.1 什么是OGNL   OGNL的全称是对象图导航语言( object-graph Navigation Language),它是一种功能强大的开源表达式语言,使用这种表达式语言,可以通过某种表达式语法,存取Java对象的任意属性,调用Java对象的方法,同时能够自动实现必要的类型转换。如果把表达式看作是一个带有语义的字符串,那么OGNL无疑成为了这个语义字符串...

VNOpU2015的专栏 218

Struts2 OGNL使用详解

OGNL OGNL ( Object Graph Navigation Language ),对象图导航语言。这是一种强大的表达式语言,通过它可以非常方便的来操作对象属性。  在 Struts2 中,OGNL 需要和 Struts2 标签库配套来使用。 OGNL context                                |                     

loup的专栏 528

Struts用的ognl和valueStack(vs)的理解+实例

1.值栈入门 下面我们建立struts_study来练习ognl的使用。 步骤一、搭建strust2的开发环境 步骤二、建立LoginAction,主要代码如下: package com.yanglic.valuestack.action; public class LoginAction extends ActionSupport{ private User user; p

sinat_21720373的博客 419

OGNL表达式语言与struts2标签库简单介绍

OGNL表达式语言概述 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,一般结合struts标签库一起使用,也是Struts2框架使用OGNL作为默认的表达式语言; OGNL的优势 1、支持对象方法调用 2、支持类静态的方法调用和值访问:@[类全名@[方法名|值名]] 3、支持赋值操作和表达式串联 4、访问OGNL上下文(上下文...

小鞋子的博客 307

Struts2标签库和OGNL

学习内容 Struts 2标签库 OGNL能力目标 熟练使用Struts 2常用标签 熟练使用OGNL 本章简介前面我们编写的案例使用的都是HTML标签,这些标签并不能很好的与Struts 2框架结合,Struts 2和Struts 1一样都自带了功能强大、成熟完善的标签库供我们使用,通过使用这些标签库可以大大提高开发效率和代码的可维护性。其实Struts 2的标签库是建立在OGNL基础上的,OG

张晨光老师的播客 2303

2使用struts2的标签库 EL表达式

与struts1标签库进行比较,struts2的标签库有一个巨大的改进之处就是struts2标签库不依赖于任何表现层技术。就是说struts2的大部分标签可以在jsp页面中使用,也可以在Velocity和FreeMarker等模板技术中使用。 Struts2的标签都定义在s标签库中,URI为/struts-tags的空间下。简单的对struts2的标签进行分类: UI标签,用于HTML

小飞虫 2261

java struts2值栈ognl_Struts2-值栈与OGNL

OGNL表示式使用 和 值栈OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。 Struts2框架使用OGNL作为默认的表达式语言。* xwork 提供 OGNL表达式* ognl-3.0.5.jarOGNL 是一种比EL 强大很多倍的语言OGNL 提供五大类功能1、支持对象方法调用,如xxx.doSomeSpecial();...

weixin_30857403的博客 219

Struts2 OGNL valueStack琐碎总结

总结一: ActionContext是Action的资源环境,每一次Action请求都会创建一个新的ActionContext,并且每一个ActionContext都是不同的(一次Action请求完毕,对应的ActionContext即销毁。但是,如果请求是在两个action之间转发而不是重定向,则任然用的是同一个ActionContext对象)。 ActionContext中包含:r

zhujiaxing666666的专栏 1192

java 值栈,值栈(ValueStack)与OGNL

ValueStack是一个接口,在struts2中使用OGNL(Object-Graph Navigation Language)表达式实际上是使用 实现了ValueStack接口的类OgnlValueStack.它是ValueStack的默认实现类.ValueStack贯穿整个action的生命周期,每一个action实例都拥有一个ValueStack对象,其中保存了当前action对象和其他相...

weixin_36329425的博客 280

(五)Struts2——OGNL

OGNL 一、值栈 我们在struts——helloWorld中的示例程序中,使用了${productName} 读取productName 值,实际上该属性并不在request 等域对象中,而是从值栈中获取的。 值栈,ValueStack: 可以从ActionContext中获取值栈对象。 值栈可以分为两个逻辑部分: Map栈:实际上是OgnlContext类型。也是对ActionContex...

刘伟佳的博客 511

Struts2中的OGNL详解

整理自多个文档, 首先了解下OGNL的概念: OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对象的方法,能够遍历整个对象的结构图,实现对象属性类型的转换等功能。 此外,还得先需弄懂OGNL的一些知识: 1.OGNL表达式的计算是围绕OGNL上下文进行

liuhanfeng123的专栏 655
上一篇: Struts2学习第二天
下一篇: struts2学习第三天(输入校验-文件上传-下载)
Wchert
博客等级 码龄7年 7粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值