Java Struts2 (四)

从图谱到论文:如何用CiteSpace的时区图与突变词分析,讲好一个‘研究趋势’的故事 本文详细解析如何利用CiteSpace的时区图与突变词分析工具,将可视化数据转化为有逻辑的研究趋势叙述。通过三层解读框架和突变词筛选技术,帮助学者挖掘学科发展的时空密码与学术前沿信号,并套用经典论文写作结构,实现从图谱到文字的完整转化。特别适合文献计量学研究者提升学术写作质量。 阅读详情
一、contextMap中的数据操作

 

root根:List

元素1

元素2

元素3

元素4

元素5

 

contextMap:Map

key

value

application

Map

key

value

name

test

 

session

Map

request

Map

attr

Map

 

 

1、存数据:

需要熟悉ActionContext和valueStack的API。框架为我们存数据。

1.1、利用ActionContext存数据

 

1.2、利用ValueStack存数据

a、如何获取ValueStack:

 

b、ValueStack中的getRoot()方法:

 

c、CompoundRoot是什么:

 

d、栈操作:

 

 

2、取数据:用Struts2的标签(OGNL表达式)在JSP上(用的最多)

使用OGNL表达式来去,struts2的OGNL表达式必须写在struts2标签中。

2.1、使用s:property取数据

a、取contextMap中的数据,需使用#

 

 

  b、取contextMap里面ValueStack中对象的属性:直接写属性名

 

 

如果遇有对象属性重名,可以通过OGNL表达式,选择查找的起始位置

 

 

 

特殊说明:当s:property不给定value属性时,默认取栈顶对象。

OGNL的使用总结:

1.取根中对象的属性,不使用#。

2.取contextMap中key的值,要使用#。

2.2、ValueStack的其他方法:

a、setValue方法

 

 

 

在Jsp页面上获取【李四】

b、set方法

 

细节问题:

当按照如下方式,往根中存放数据时,根中元素是什么顺序?

 

使用<s:debug/>标签查看:

 

 

c、findValue:我们在Jsp上调用的都是findValue

 

 

二、Struts2对EL的改变

1、Struts2中使用EL的问题:

前提:

我们应该知道,如果我们没有往值栈(根)中放入数据的话,那么我们的动作类默认是在值栈的栈顶。

 

 

 

 

问题:

我们放到请求域中的属性,使用EL表达式取出来了。但是放到应用域中的属性,使用EL表达式没取出来。

2、关于EL问题的分析:

分析:

我们知道EL表达式是从四大域对象中依次查找属性。搜索范围是由小到大。page Scope————>request Scope————>sessionScope————>application Scope

但是通过测试发现,搜索完request范围后就没有继续搜索,而是返回了ValueStack中栈顶对象name属性的值。

 

 

3、Struts2中EL查找顺序改变总结:

  EL表达式: page Scope————>request Scope————>sessionScope————>application Scope

OGNL表达式:page Scope————>request Scope————>valueStack(根中)————>contextMap————>sessionScope————>application Scope

4、OGNL的特殊说明:

 

 

 

注意:以下内容知道即可。

 

三、OGNL配合通用标签的其他使用

1、iterator标签(很重要)

 

 

 

 

2、OGNL投影(了解)

2.1、使用过滤条件投影

 

2.2、投影指定属性

 

3、Struts2中#,$,%符号的使用(重要)

3.1、#

a、取contextMap中key时使用,例如<s:property value="#name" />

b、OGNL中创建Map对象时使用,例如:<s:radio list="#{'male':'男','female':'女'}" />

3.2、$

a、在JSP中使用EL表达式时使用,例如${name}

b、在xml配置文件中,编写OGNL表达式时使用,例如文件下载时,文件名编码。

struts.xml——>${@java.net.URLEncoder.encode(filename)}

3.3、%

在struts2中,有些标签的value属性取值就是一个OGNL表达式,例如<s:property value="OGNL Expression" />

还有一部分标签,value属性的取值就是普通字 符串,例如<s:textfield value="username"/>,如果想把一个普通的字符串强制看成时OGNL,就需要使用%{}把字符串套起来。

例如<s:textfield value="%{username}"/>。当然在<s:property value="%{OGNL Expression}" />也可以使用,但不会这么用。

4、其他标签

4.1、set标签

4.2、action标签

 

 

 4.3、if标签,elseif标签 else标签

 

4.4、url和a标签(很有用)

 

四、Struts2的UI标签和主题

1、Struts2中UI标签的优势

自动的数据回显和错误提示功能

自带的简单样式和排版

2、表单标签的通用属性

 说明:UI标签中value的取值一般都是字符串。

2.1、UI标签的通用属性

 

2.2、关于checkboxlist的使用:

 

 

 

 

2.3、UI标签的小案例以及模型驱动的分析

 

 

 

3、UI标签的模板(主题)

3.1、struts2中默认主题

默认主题的名称是XHTML,都是在struts的默认属性文件中定义着:default.properties

 

 

 

 

3.2、更改默认主题

a、更改表单某个元素的默认主题:使用的是表单元素的theme属性。

 

b、更改表单所有主题:使用的是form标签的theme属性。

 

c、更改全站所有表单主题:是在struts.xml配置文件中,覆盖原有主题的设置。

 

五、防止表单重复提交(拦截器)

1、回顾之前的解决办法:

 

2、Struts2中的解决办法:

2.1、使用重定向

 

遗留的问题:防不住后退,再提交。

2.2、使用<s:token/>生成令牌配合token拦截器

 

 

点击后退的时候,会提示:

 

配置结果视图:

 

遗留的问题:此种解决方式,是产生了错误之后再告知用户,你错了。

2.3、使用<s:token/>生成令牌配合tokensession拦截器

 

基于LSTM算法的股票预测详解 一、需求 给定几个已知的股市因素(开盘、收盘、最高、最低、成交量、成交额)及各因素对应的大量数据,训练一个该股票的涨跌趋势的预测模型。并在给定的测试数据的条件下求出接下来的涨跌趋势。即得到下图中的label值。-1代表跌、1代表涨。 二、分析 1、LSTM简单介绍 LSTM这个算法是专门训练有时间序列信息的数据的,即这些数据不仅按照时间递增的顺序排布,并且前后的数据都有着很强的联系。个人认为与马尔可夫的思想差不多,即后面的值由前面的值来决定。本次需求是要根据已知的股市数据来分析某个时间段的涨跌趋势,并预测 阅读详情

相关推荐

5分钟搞定CST周期性结构仿真:共面波导色散曲线快速生成技巧

本文提供了一套在CST Studio Suite中快速仿真周期性结构并生成色散曲线的标准化流程。针对共面波导设计,重点解析了周期性边界条件的核心设置、本征模求解器(JDM算法)的优化技巧,以及通过参数扫描与后处理模板实现自动化,旨在帮助射频与微波工程师在5分钟内高效完成关键性能验证。

blue的专栏 1250

struts2 token实现方式

1     struts2 的token标签 会在页面产生   &lt; input type ="hidden" name ="struts.token.name" value ="struts.token" /&gt; &lt; input type ="hidden" name ="struts.token" value =&quo

chen422520的专栏 613

Zipformer在RK3588上的性能实测:比Conformer快多少?内存省多少?

本文在RK3588平台上对Zipformer和Conformer语音识别模型进行了全面的性能实测。结果显示,Zipformer在模型部署中展现出显著优势:推理速度比Conformer快约56%,峰值内存占用降低约60%,同时在AISHELL-1等测试集上保持了相当的识别准确率。这为边缘ASR应用提供了更高效、更节省资源的解决方案。

metal的博客 484

告别卡顿!在Ubuntu 22.04 LTS上优化swap性能的完整指南(从文件到zram)

本文详细介绍了在Ubuntu 22.04 LTS上优化swap性能的完整指南,涵盖从传统swap文件调整到前沿的zram内存压缩技术。通过科学计算swap大小、安全调整swap文件以及配置zram,有效解决系统卡顿问题,提升Ubuntu系统性能。适用于不同硬件配置的开发机和笔记本用户。

weixin_30555515的博客 183

保姆级教程:用GEE(Google Earth Engine)复现CASA模型计算NPP,附完整数据集清单与Python代码

本文提供了一份详细的保姆级教程,指导如何使用GEE(Google Earth Engine)复现CASA模型计算NPP(净初级生产力)。教程涵盖环境准备、关键数据集获取与处理、Python代码实现全流程,以及结果验证与常见问题解决方案,帮助生态学研究者高效完成NPP计算。

weixin_28707365的博客 335

MIPI DPHY接口(基于Xilinx FPGA实现)案例分析

在Xilinx FPGA实现MIPI DPHY接口的案例(包括CIS协议层)。截止目前为止,Xilinx仅在Ultrascale+及其以上版本的FPGA IO可直接支持MIPI 电平输入,其他的,都需要转换成LVDS来接收。

ONEFPGA的博客 5639

OGNL表达式与EL表达式区别

1.显示页面**************************** /** 列表 */ public String list() throws Exception { List roleList = roleService.findAll(); ActionContext.getContext().put("roleList", roleList); return "list"; }

忧桑的小猿猿 1万+

达梦数据库集群部署(主备)

达梦数据库集群部署(主备)

m0_71845127的博客 1462

java struts2_Java框架之Struts2(四)

一、ComboGrid扩展自$.fn.combo.defaults和$.fn.datagrid.defaults。使用$.fn.combogrid.defaults重写默认值对象。数据表格下拉框结合了可编辑文本框控件和下拉数据表格面板控件,该控件允许用户快速查找和选择,并且该控件提供了键盘导航支持,对行进行筛选。这东西其实就是下拉框中出现一个datagrid依赖关系combodatagrid所谓的...

weixin_32417571的博客 165

linux离线安装nginx

linux离线安装nginx

zhang_130914036的博客 9353

基于YOLOv8改进的目标检测算法研究及毕设实现全流程指南

在PyTorch中定义改进后的YOLOv8模型。首先,导入相关的库和模块,然后定义骨干网络、颈部和头部的结构。# 这里定义骨干网络的结构,例如使用改进的CSP结构# 卷积层、批归一化层、激活函数等# 更多的卷积层、批归一化层、激活函数等# 其他层...# 其他层的输出...然后,定义颈部和头部的结构,类似地,将注意力机制和特征增强方法集成到模型中。本毕设以YOLOv8为基础,通过集成注意力机制、应用特征增强技术等方法,改进了目标检测算法。

m0_64661770的博客 326

Java 面试题四 Struts1与Struts2之间的区别

Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。 Struts2Action类可以实现一个Action接口,也可以实现其他接口,使可选和制定的服务成为可能。 Struts2 提供一个ActionSpport 基类去实现常用的接口。Action接口不是必须的,任何有execute标志的pojo 对象都可以用作Struts2 的Action

3062

30天入门 SAP BTP 开发系列之十八:保姆级教程 - 如何部署 SAP UI5 到 SAP BTP Cloud Foundry 环境

本文摘要: 本文详细介绍了如何将SAP UI5应用部署到Cloud Foundry环境。首先需完成前17篇教程学习,创建SAP BTP子账户并启用Cloud Foundry环境。在SAP Business Application Studio中创建Fiori开发空间,导入GitHub上的UI5项目代码。通过npm run build命令打包成mtar文件后,使用cf deploy命令部署到Cloud Foundry。部署成功后,可在BTP控制台查看应用或通过命令行获取访问URL。整个过程涵盖了环境准备、代码

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1020

Struts2(四)拦截器—Java基础篇

1.web.xml&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.

qidiantianxia的专栏 210

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java框架之Struts2(四)

一、ComboGrid 扩展自$.fn.combo.defaults和$.fn.datagrid.defaults。使用$.fn.combogrid.defaults重写默认值对象。数据表格下拉框结合了可编辑文本框控件和下拉数据表格面板控件,该控件允许用户快速查找和选择,并且该控件提供了键盘导航支持,对行进行筛选。 这东西其实就是下拉框中出现一个datagrid 依赖关系 combo ...

weixin_30478757的博客 135

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Day48 Java框架 Struts框架(四) Struts2的拦截器 & 标签库

一.拦截器概述 interceptor: 拦截器, 起到拦截Action的作用 Filter: 过滤器,过滤从客户端向服务端发送的请求. Interceptor: 拦截器, 拦截是客户端对Action的访问, 更细粒度化的拦截(拦截Action中的具体的方法) Struts2框架核心的功能都是依赖拦截器实现 Struts2的执行流程 - - 客户端向服务器发送一个Action的请求...

ambition 162

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java struts2值栈ognl,Struts2学习(四)———— ognl表达式,值栈,actionContex

一个,什么是Ognl?通过百度百科找到的解释详细介绍了OGNL的作用.现在,我们将解释OGNL的5个功能1. 访问对象的任何属性,只需在javabean上操作即可(重要)2,调用对象方法.3,调用该类的静态方法4,索引数组元素5. 操作集(重要)二,OGNL功能实现在执行此操作之前,您必须了解如何使用OGNL表达式,并且必须了解OGNL表达式的值范围只能位于其上下文和根目录中. 格式是Ognl.g...

weixin_35033679的博客 200

《与Java相恋》(高级篇)四——利用struts2框架开发简单的web应用程序

首先,我们来看看struts2框架处理数据的流程: 客户端产生一个HttpServletRequest的请求该请求被提交到一系列的过滤器当中,所有的请求都会被前端控制器截获,再根据映射器来确定调用哪一个action,一旦确定后,控制器就会将处理权委托给action代理,action代理就会调用action类中的方法对请求进行处理,最后将结果转发 到相应的页面中。 下面,我们通过一个一个简单

源远流长 1394

java actioncontext_struts2(四) ognl表达式、值栈、actionContext之间的关系

今天来说说ognl表达式在struts2中的运用。--WZY一、什么是Ognl?通过百度百科查询到的解释,其中详细的说明了OGNL的作用。下面我们就对OGNL这5个作用进行讲解1、存取对象的任意属性,简单说就是对javabean进行操作(重要)2、调用对象方法。3、调用类的静态方法4、索引数组元素5、操作集合(重 要)二、OGNL的功能实现操作之前必须知道如何使用OGNL表达式,并且了解OGNL表...

weixin_34500880的博客 182

java痛苦学习之路[四]---关于struts2-convention-plugin使用

一、struts2-convention-plugin配置文件具体解释 <constant name="struts.convention.actionConfigBuilder" value="convention"/> <constant name="struts.convention.actionNameBuilder" value="convention"...

weixin_30278237的博客 175
上一篇: Java Struts2 (二)
下一篇: Java Struts2 (三)
github_39294367
博客等级 码龄9年 33粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值