1.怎么写Action类? 2.Action的方法,怎么样跟请求对应 3.Action中怎么获取作用域通讯对象

1.如何写Action类?

  1)public String execute(){}

  2) public String methodName(){}

  3) extends ActionSupport

2.Action的方法,怎么样跟请求对应?

   1)什么都不指定,默认调用Action的execute
   2)在struts.xml action的method属性指定


   3)在url中用!号指定    login!add.action   (login为action名,add为action中的一个方法名)


   4)用submit标签的method属性指定方法名称


   5)在action用,用通配符自己适配、

3.Action中怎么获取作用域通讯对象
   1)IOC
      Struts2  (Action对象)
      HttpServletRequest (Tomcat)

步骤:实现接口SessionAware,重写setSession()方法,在login中调用session.put("key","value");

  1. public class LoginAction extends ActionSupport implements SessionAware,
  2.         ServletRequestAware {

  3.     private String userName;
  4.     private String password;
  5.     private String message;

  6.     private Map session = null;

  7.     private HttpServletRequest request = null;
  8.  /**
  9.   * Action中如何获取作用域通讯对象 s1)IOC Struts2 (Action对象)
  10.   * 步骤:实现接口SessionAware,重写setSession()方法,在login中调用session.put("key","value");
  11.   * HttpServletRequest (Tomcat)
  12.   * 实现接口ServletRequestAware接口,重写setServletRequest()方法 2)非IOC
  13.   *
  14.   */

  15.     public String login() {
  16.         String result = "success";
  17.         message = "登录成功";
  18.         System.out.println(userName + " " + password);
  19.         if (userName == null || userName.equals("")) {
  20.             result = "fail";
  21.             message = "登录失败";
  22.         } else {
  23.             // 获取session
  24.             // 在session中放一个用户登陆成功标记
  25.             session.put("LOGIN_FLAG", userName);
  26.             // 非IOC
  27.             Map s1 = ActionContext.getContext().getSession();
  28.             HttpServletRequest req = ServletActionContext.getRequest();
  29.         }
  30.         return result;
  31.     }

  32. // 重写了SessionAware接口中的setSession方法
  33.   
  34.     public void setSession(Map<String, Object> arg0) {
  35.         this.session = arg0;
  36.     }

     struts2将session用map为了:实现容器的解耦(测试时只需要在JUnit测试,只需要在Map中看有无值,否则需要在tomcat下测试)
   2)非IOC

      HttpServletRequest req = ServletActionContext.getRequest();

 

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(3489) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值