Spring Struts 2ゼロプロファイル


第一の方法:クラスName
注釈でactionを構成すると、@アクション(value=「/action」)ですが、注釈とspringを関連付けると、文書を見て分かります.@アクション(value=「/action」classing=「spring中のID」)だけ必要です.このように、このactionを質問すると、struts 2はspringにactionを要求します.

import org.apache.struts2.convention.annotation.Action;  
import org.xuliang.services.MyUserService;  
import org.xuliang.vos.LoginVo;  
  
public class MyLoginAction {  
    private LoginVo lv = new LoginVo();  
      
    private MyUserService mus;  
      
    @Action(value="/mylogin")  
    public String login(){  
        System.out.println(this.hashCode());//           hashCode    
        System.out.println(lv.getUpwd()+"====="+lv.getUname());  
        mus.findUserByUnameUpwd(lv.getUname(), lv.getUpwd());  
        return null;  
    }  
  
    public MyUserService getMus() {  
        return mus;  
    }  
  
    public void setMus(MyUserService mus) {  
        this.mus = mus;  
    }  
  
    public LoginVo getLv() {  
        return lv;  
    }  
  
    public void setLv(LoginVo lv) {  
        this.lv = lv;  
    }  
}  
注:上のthis.hashCode()は、このクラスの例がSpringから生産されたものか、それともStruts 2から生産されたものかを示しています.設定されたClass NameがBens.xmlの中で指定されたidが見つからない場合、またはclassNameは配置されていません.
Springに対応するIDのBeanが生成する
Spring中のBens.xmlにScropt=「Single」を設定する場合  出力したhashCodeが同じであればSpringが発生し、逆にStruts 2が生成します.
もう一つの方法:classis Nameを配合しないで、ずっとspringの中でこの種類のフルネームorg.hzy.actions.MyLoginationを配置すればいいです.
注释では、actionのためにクラスを指定する必要がないので、この属性が存在しないという意味ではありません.この属性の値は@アクションがあるクラス名です.className属性が設定されていないactionにアクセスすると、struts 2はspringをActionし、springはこのaction類のフルネームでidのbeanにマッチします.だから私たちはこのbeanのidをactionのクラス名に設定すると、springとマッチします.このような配置によって、springとstruts 2のレンコン分解度がいいです.