4.访问web元素[1],容器获取

来源:互联网 发布:大数据在电商中的应用 编辑:程序博客网 时间:2024/04/30 23:53
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 
"http://struts.apache.org/dtds/struts-2.3.dtd"> 
<struts> 
<constant name="struts.enable.DynamicMethodInvocation" value="false" /> 
<constant name="struts.devMode" value="true" /> 
<package name="login" namespace="/login" extends="struts-default"> 
<action name="login*" 
class="com.example.struts.action.LoginAction{1}"> 
<result > 
/success.jsp 
</result> 
</action> 
</package> 
</struts>

LoginAction1 
package com.example.struts.action;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction1 extends ActionSupport{
     private Map request; //类型是Map=【key】加【value】的组合
     private Map session;
     private Map application;
     public  LoginAction1(){ //必须加上public,否则在action调用该类时不可以执行该构造函数
      request=(Map)ActionContext.getContext().get("request");
//ActionContext.getContext(),获取当前环境
      session= ActionContext.getContext().getSession();
      application= ActionContext.getContext().getApplication();        
     }      
    public String execute() {
     request.put("r1", "r1"); //(key,value)
     session.put("s1", "s1");
     application.put("a1","a1");
  return SUCCESS;       
    }      
}

login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>  
    <title>登陆页面</title>
  </head>   
  <body>
   <form name="f" action="" method="post">
    用户名: <input type="text" name="name"/>
     密码:<input type="text" name="password"/>
   <br/>
    <input type="button" value="submit1" onClick="javascript:document.f.action='login/login1';document.f.submit();"/>
    <input type="button" value="submit2" onClick="javascript:document.f.action='login/login2';document.f.submit();"/>
      <input type="button" value="submit3" onClick="javascript:document.f.action='login/login3';document.f.submit();"/>
        <input type="button" value="submit4" onClick="javascript:document.f.action='login/login4';document.f.submit();"/>
// onClick="指定传入action"
   </form>
  </body>
</html>

success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">  
    <title>登陆成功</title>
  </head>
  <body>
  <s:property value="#request.r1"/>|<%=request.getAttribute("r1") %><br>
    <s:property value="#session.s1"/>|<%=session.getAttribute("s1") %><br>
      <s:property value="#application.a1"/>|<%=application.getAttribute("a1") %><br>
//#application.a1意思是

//Stack Context

//These items are available using the #key notation
//必须加#才可以访问

Stack Context的内容

//web也可以访问,原因是把struts的内容也复制到了web中。
也就是<%=request.getAttribute("r1") %>也有值。
      <s:debug></s:debug>
  </body>

</html>

------------------------------------------------------------------------------------------------------------

运行结果:


-----------------------------------

原来说明:


0 0