• action 耦合方式


    //ActionContext 方式

    package com.hanqi.action;

    import java.util.Map;

    import com.opensymphony.xwork2.ActionContext;

    public class TestAction {
    //封装
    //解耦
    //用ActionContext
    public String testWeb()
    {
    //访问Web资源
    System.out.println("经过了Action类");
    //单例模式
    //Action实例的上下文对象
    ActionContext ac=ActionContext.getContext();

    		//1.获取application
    		Map<String,Object>mapApp=ac.getApplication();
    		
    		System.out.println("app1="+mapApp.get("app1"));
    		
    		//放入新的键值对
    		mapApp.put("app2","新放入的application");
    		
    		//2.获取session资源
    		Map<String,Object>ses=ac.getSession();
    		
    		System.out.println("ses="+ses.get("ses1"));
    		
    		ses.put("ses2", "新放入的session");
    		ses.remove("ses1");
    		
    		Map<String,Object>mapReq=(Map<String,Object>)ac.get("request");
    		
    		//不能获取之前的request属性
    		System.out.println("req="+mapReq.get("req1"));
    		//可以放入新的
    		mapReq.put("req2", "新放入的request");
    		//4直接获取传递的参数
    		Map<String,Object>mapPar=ac.getParameters();
    		//参数值被封装成String[]
    		String[]str=(String[])mapPar.get("user");
    		for(String t:str)
    		{
    			System.out.println("user="+t);
    		}
    		//放入新的参数,不能被获取到
    		mapPar.put("pw", new String[]{"123456"});
    		return "success";
    	}
    

    }

    实现接口方式

    package com.hanqi.action;

    import java.util.Map;

    import org.apache.struts2.interceptor.ApplicationAware;
    import org.apache.struts2.interceptor.ParameterAware;
    import org.apache.struts2.interceptor.RequestAware;
    import org.apache.struts2.interceptor.SessionAware;

    public class TestActionAware implements ApplicationAware
    ,SessionAware ,RequestAware,ParameterAware{

    private Map<String, Object> mapApp,mapSes,mapReq;
    
    private Map<String, String[]>mapPar;
    //实现ApplicationAware接口的方法
    //提供给StrutS2进行调用,放入Application的数据集合
    @Override
    public void setApplication(Map<String, Object> arg0) {
    	
    	//接收
    	mapApp=arg0;
    	
    }
    
    public String testAware()
    {
    	//1访问application
    	System.out.println("app1="+mapApp.get("app1"));
    	
    	mapApp.put("app2","以Aware方式放入的Application");
    
    	
    	//2.访问session
    	System.out.println("ses1="+mapSes.get("ses1"));
    	
    	mapSes.put("ses2", "以Aware方式放入的session");
    	
    	
    	//3. 访问Request
    	System.out.println("req1="+ mapReq.get("req1"));
    	
    	
    	mapReq.put("req2", "以Aware方式放入的request");
    	//4.访问Parameter
    	String[]str=mapPar.get("user");
    	for(String st:str)
    	{
    		System.out.println("user="+st);
    	}
    	mapPar.put("pw",new String[]{"123"});
    	
    	
    	
    	return "success";
    	
    }
    
    @Override
    public void setSession(Map<String, Object> arg0) {
    
    
    	mapSes=arg0;
    	
    }
    
    @Override
    public void setRequest(Map<String, Object> arg0) {
    	mapReq=arg0;
    	
    }
    
    @Override
    public void setParameters(Map<String, String[]> arg0) {
    	mapPar=arg0;
    }
    

    }

  • 相关阅读:
    注册InstallShield
    java学习——异常处理
    IntellJ IDEA下写JUnit
    【转】光盘和U盘安装win7和ubuntu14.04全步骤
    上汽笔试题
    小白面试
    mysql
    HOWTO: Setup XCode 6.1 to work with OpenCV3 libraries
    [转]在MacOS和iOS系统中使用OpenCV
    [转]在 Mac OS X 终端里使用 Solarized 配色方案
  • 原文地址:https://www.cnblogs.com/nicebaby/p/6086546.html
Copyright © 2020-2023  润新知