Struts2
访问web资源
1》使用servlet API解耦的方式,获取的方法较少
1.使用ActionContext,一个一个获取,效率不高
2.实现XxxAware接口(ApplicationAware,SessionAware.....)推荐,
session对应的Map是SessionMap,强转后调用其invalidate()方法,session失效
2》使用servlet API耦合的方法,
1.使用ServletActionContext方法
2实现ServletXxxAware接口
ServletContextAware ServletRequestAware ServletResponseAware
namespace:命名空间
Action是线程安全的,因为每一次请求都创建一个实例,不是单例的
<result name="Action中方法return的地址" type=“”>type有dispatch (转发,转发到指定的页面,默认的),redirect(重定向) redirectAction(重定向到一个Action)chain(转到指定的Action)
通配符
struts 2.5以后如果要使用通配符的话必须再package中引入 strict-method-invocation="false"
值栈*
OGNL表达式
获取对象栈(ObjectStack);获取某一对象的属性值,通过<s:property value="对象值"/>,默认从栈顶开始搜索 , <s:property value="[0]对象值"/>[0]表示从索引为0的元素查找,也就是第一个,可以省略
获取Map栈;request,session,application等或者一个请求参数的值
获取map里的属性可以用EL,OGNL表达式(#session.code)用OGNL有很多好处
OGNL可以调用java类的任何静态属性和方法
首先需要在struts配置文件设置可访问设置可以访问
访问形式为
还可以调用值栈的属性和方法
将元素放到值栈的栈顶,对应的元素在栈里下移动一个位置
通用标签
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端