找了下 好像不是很清楚   如果写 set 那不同的方法不是可以访问到同样的变量了  ,感觉struts1中 用request来注入 很清晰啊,只有在当前方法才能访问

解决方案 »

  1.   

    说的是setter这个方法把,这个方法肯定是要的,要不这个变量就不能在外部有赋值得办法了
      

  2.   

    楼主也可以使用request注入attributes的:HttpServletRequest request = ServletActionContext.getRequest();
    request.setAttribute("username", "user1");
      

  3.   

    应该可以吧,我之前是一直写,但刚在网上看了下,有说可以不用的:
    struts2 参数拦载器在注入值的时候,有两种机制,(调用ognl) 这是OgnlRuntime 类中一段源码 hasSetMethod( context, target, targetClass, name ) || hasField( context, target, targetClass, name ); 他会先查看你的action 中有没有对应的方法,如果发现无此方法,他会利用第二种方法直接给属性覆值,而无需对应的set方法!(当然都是通过反射机制实现的) 如果action 中属性过多的话,我觉得就不用写set get 方法了 
      

  4.   

    action如果不需要数据操作,就可以不写setter和getter啊。比如logout操作,只需要清空session,不需要传递数据