struts2域值操作

1.通过servletActionContext类

 1 /***
 2  * 获得方式一:通过ServletActionContext类
 3  * 提供的静态方法获得原始的web对象,直接和servlet的API耦合
 4  * 如果需要获得原始的web对象,只能选择ServletActionContext类
 5  * **/
 6 public String method01()
 7 {
 8     //获得HttpServletRequest对象
 9     HttpServletRequest request= ServletActionContext.getRequest();
10     //获得HttpServletResponse对象
11     HttpServletResponse response=ServletActionContext.getResponse();
12     //获得HttpSession对象
13     HttpSession session=request.getSession();
14     //获得Application对象
15     ServletContext application=ServletActionContext.getServletContext();
16     //给web对象中封装数据
17     request.setAttribute("req", "method01----req");
18     session.setAttribute("sin", "method01----sin");
19     application.setAttribute("app", "method01----app");
20     return Action.SUCCESS;
21 }

2.通过ActionContext获得

ServletActionContext extends ActionContext

 1 /**
 2  * 方式二:
 3  * struts2框架将web对象封装到Map集合中。
 4  * ActionContext将获得web对象全部转化为Map,不需要依赖web容器,
 5  * 完成和servlet的api解耦合
 6  *
 7  * ***/
 8 public String method02()
 9 {
10     //相当于request对象
11     ActionContext ac=ActionContext.getContext();
12     Map<String,Object> session=ac.getSession(); //相当于sessoin对象
13     Map<String,Object> application=ac.getApplication();//相当于application
14     ac.put("req", "method02---req");
15     session.put("sin", "method02----sin");
16     application.put("app", "method02----app");
17     return Action.SUCCESS;
18 }

3. 通过struts2框架注入web对象

3.1定义BaseAction

 1 /****需要实现特定的接口****/
 2 public class BaseAction implements RequestAware,SessionAware,ApplicationAware
 3 {
 4     protected Map<String,Object> request;
 5     protected Map<String,Object> session;
 6     protected Map<String,Object> application;
 7     @Override
 8     public void setRequest(Map<String, Object> request)
 9     {
10         System.out.println("setRequest------"+request);
11         this.request=request;
12     }
13     @Override
14     public void setSession(Map<String, Object> session)
15     {
16         System.out.println("setSession------"+session);
17         this.session=session;
18     }
19     @Override
20     public void setApplication(Map<String, Object> application)
21     {
22         //System.out.println("setApplication------"+application);
23         this.application=application;
24     }
25 }

3.2web对象的获得

 1 /***
 2  * 方式三:通过struts2框架完成web对象的注入
 3  * 需要实现特定的接口,而重写的接口的方法,由struts2框架自己调用,
 4  * 只需要定义相应Map变量,接收setXxx的形参
 5  * 完成了和servletAPI的解耦合
 6  * 同时完了对象的获取和对象的使用之间的解耦合
 7  * IOC注入方式获得web对象(程序员只需要定义变量接收值,由struts2框架完成赋值)
 8  * ***/
 9 public String method03()
10 {
11     request.put("req", "method03----req");
12     session.put("sin", "method03----sin");
13     application.put("app", "method03----app");
14     return Action.SUCCESS;
15 }
时间: 2024-11-10 13:20:01

struts2域值操作的相关文章

2_Matlab图像的空间域变换操作

1. 目的:为了达到某种视觉效果,变换输入图像的像素位置,通过把输入图像的像素位置映射到一个新的位置以达到改变原图像显示效果的目的. 2. 操作包括: ? 图像插值(Interpolation) ? 图像缩放(Resizing) ? 图像旋转(Rotation) ? 图像剪切(Cropping) 3.图像差值操作 1)原因:在处理图像的过程中,比如对图像进行缩放及旋转,这时图像中每个像素的值都要发生变化.数字图像的坐标是整数,经过这些变换之后的坐标不一定是整数,使得输入图像的像素点经过空间域变换

jquery 文本域光标操作(选、添、删、取)

一.JQuery扩展 ; (function ($) { /* * 文本域光标操作(选.添.删.取)的jQuery扩展 http://www.cnblogs.com/phpyangbo/p/5528648.html */ $.fn.extend({ /* * 获取光标所在位置 */ iGetFieldPos: function () { var field = this.get(0); if (document.selection) { //IE $(this).focus(); var sel

文本域光标操作(选、添、删、取)的jQuery扩展

; (function ($) { /* * 文本域光标操作(选.添.删.取)的jQuery扩展 @Mr.Think http://mrthink.net/text-field-jquery-extend/ */ $.fn.extend({ /* * 获取光标所在位置 */ iGetFieldPos: function () { var field = this.get(0); if (document.selection) { //IE $(this).focus(); var sel = d

ADHelper C#域用户操作(转)

using System; using System.Collections.Generic; using System.DirectoryServices; using System.Linq; using System.Runtime.InteropServices; using System.Security.Principal; using System.Text; using System.Threading.Tasks; namespace ADS.BLL { public clas

C# 关于AD域的操作 (首博)

前段时间(因为懒得找具体的时间了)公司说让系统可以进行对AD域的操作,包括创建用户.于是上网查资料,了解何为AD域.还不知道的这边请https://www.cnblogs.com/cnjavahome/p/9029665.html. 网上有很多提供对AD域操作的帮助类,简称ADHelper.等会我也发一个.使用网上的帮助类的时候我遇到几个问题.这就是我为什么写这个随笔的原因. 问题1:创建用户的时候提示以下错误. 有几种原因:密码错误,不满足密码复杂度(长度至少7,且含有英文数字特殊符号),对账

php数组键值操作和数组统计函数-函数

1.数组函数//作用:提供了很多官方写的很多有用的代码段,提高编写速度 1)数组的键值操作函数 array_values();//获取数组中的值 array_keys();//获取数组中的键 in_array();//检查一个值是否在数组中 array_flip();//键和值对调 array_reverse();//数组中的值反转 模拟获取key的数值<?php $arr=array ("name"=>"user1","age"=&

C++ 标准库值操作迭代器的常见函数

迭代器是C++标准库中的重要组件,特别是在容器内部,没有迭代器,容器也就无所谓存在了. 例如:vector容器简而言之就是3个迭代器 start finish 以及end_of_storage vector的任何操作都离不开这3个迭代器.. 接下来,总结一下C++ 中的迭代器的操作. C++的迭代器分为5类,依次为 : Input_iterator, output_iterator, forwrd_iterator, bidirectional_iterator 以及  random_acces

函数bsxfun,两个数组间元素逐个计算的二值操作

转自http://www.cnblogs.com/rong86/p/3559616.html 函数功能:两个数组间元素逐个计算的二值操作 使用方法:C=bsxfun(fun,A,B) 两个数组A合B间元素逐个计算的二值操作,fun是函数句柄或者m文件,也可以为如下内置函数: @plus 加@minus 减@times 数组乘<Simulink与信号处理>@rdivide 左除@ldivide 右除@power 数组幂乘@max 二值最大值@min 二值最小值@rem 余数@mod 求模@ata

ajax跨域请求操作实例

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS</title> <style> #box{ width:600px; height:200px; padding:20px; border:1px solid #999; } </style> </head> <