struts2-01:作用域传值

简介: 方式一、使用ServletActionContext(耦合度高,不建议使用) public String login(){ ServletActionContext.getRequest().

方式一、使用ServletActionContext(耦合度高,不建议使用)

public String login(){
    ServletActionContext.getRequest().getSession().setAttribute("user","王彬");
    return "success";
}

 

Struts.xml

<action name="login" class="cn.xcq.entity.Action1" method="login">
    <result>/success.jsp</result>
</action>

 

Success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>成功页面</h1>
${sessionScope.user}
</body>
</html>

 

 

 

方式二、实现接口

这个案例使用session作用域,所以实现SessionAware接口

Struts2底层将作用域都封装成了Map。

public class Action1 implements SessionAware {

//声明一个Map
private Map<String, Object> session;

 

//使用session需 实现sessionaware接口
//requesr RequestAware接口。。。。
public String login(){
    session.put("user","程高升");
    return "success";
}

 

//重写SessionAware的setSession方法,将声明的session赋值给它
@Override
public void setSession(Map<String, Object> map) {
    this.session=map;
}

}

 

 

Success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>成功页面</h1>
${sessionScope.user}

</body>
</html>

 

 

方式三、ActionContext

//方式三
 public String login(){

//session
     Map<String, Object> session = ActionContext.getContext().getSession();
     session.put("user","林帅");

//request
     Map<String, Object> request =(Map<String, Object>) ActionContext.getContext().get("request");
     request.put("name","程高升");
     return "success";
 }

 

目录
相关文章
|
数据采集 安全 数据处理
制造业、工程设计行业、创投行业的数据治理痛点与解决方案
关注监管政策动态:密切关注数据治理相关法律法规的发布和更新,及时调整企业数据治理策略,确保合规经营。
制造业、工程设计行业、创投行业的数据治理痛点与解决方案
|
前端开发 测试技术 数据安全/隐私保护
图书馆信息管理系统(项目测试)
图书馆信息管理系统(项目测试)
389 2
|
JavaScript 前端开发 API
用Python和Vue构建内容管理系统(CMS):一步步指南
【4月更文挑战第10天】本文介绍了如何使用Python的Django框架和前端的Vue.js构建内容管理系统(CMS)。Django提供后端支持,遵循MTV模式,Vue.js则用于创建数据驱动的用户界面。步骤包括环境准备、Django项目与应用创建、定义数据模型、创建API接口、搭建Vue项目、集成Django与Vue、性能优化及部署上线。这种结合充分利用两者优势,实现高效、可扩展的CMS解决方案,适应未来智能化、个性化的趋势。
768 0
|
存储 算法 Python
python常用算法(5)——树,二叉树与AVL树(一)
python常用算法(5)——树,二叉树与AVL树
|
机器学习/深度学习 开发者 计算机视觉
【YOLOv8新玩法】姿态评估寻找链接切割点
【YOLOv8新玩法】姿态评估寻找链接切割点
145 0
|
前端开发 JavaScript
前端 JS 经典:let、const、var 区别
前端 JS 经典:let、const、var 区别
106 0
|
算法 Java 调度
线程的挂起和唤醒
线程的挂起和唤醒
|
消息中间件 存储 缓存
RocketMQ最新版源码剖析注释笔记 关注我的技术博客:
RocketMQ最新版源码剖析注释笔记 关注我的技术博客:
458 0
|
C++
Leetcode 每日一题 1911. 最大子序列交替和 c++
Leetcode 每日一题 1911. 最大子序列交替和 c++
136 0
|
存储
<二叉树(链式)>《数据结构(C语言版)》
<二叉树(链式)>《数据结构(C语言版)》
261 0
<二叉树(链式)>《数据结构(C语言版)》