Chinaunix首页 | 论坛 | 博客
  • 博客访问: 298620
  • 博文数量: 30
  • 博客积分: 732
  • 博客等级: 军士长
  • 技术积分: 439
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-10 00:13
文章分类

全部博文(30)

文章存档

2015年(1)

2013年(5)

2012年(24)

我的朋友

分类: Java

2012-05-15 15:57:04

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();

 

阅读(7161) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~