Struts2之------Action類中的get,set方法和execute方法的使用規范和使用流程(規范是沒有理由的,必須遵守!!!)


1,Action中get,set方法的使用流程?

  前台form中有一個<input type="text" name="username"/>
  如果傳到action。在action中應該有一個屬性,名字也叫username;而且這個username有get/set方法,其中get方法的命名必須為getUsername,其中set方法的命名必須為setUsername這里方法名稱按java Bean的規定注意不是setUserName和getUserName

  當struts接受這個action請求時,struts調用 username的set方法把前台的值傳到action中的username,當action處理完成,要返回到頁面時。在生成jsp的過程中,你可以在頁面中使用EL,${username},這時調用username的get方法。

  例如下邊實例:  

class Bean{ 
    //普通公有屬性
    public Integer id;    
    //標准的java bean set/get方法
    private String username;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }   
}
 

2,還有,get方法的命名,為什么一定要,比如參數a,get一定要命名為getA()geta()則不行如果參數是A呢,get什么?參數命名為A就不正確,不符合規則。所以不存在問題。

  上邊問題中的命名方法getA是按java Bean的規定來命名的。這個標准就是java bean的標准,標准包括標准的set/get方法相關的東西。這個是開發struts的人定的標准,並沒有特定的意義,只是為了讓它規范化,有一個統一的標准。

  如果你知道什么是javaBean,你就知道屬性abc的get/set方法為什么是setAbc/getAbc
  更深層次,你就應該了解Ioc,控制反轉

 

3,Struts2中Action必須實現execute方法嗎?不必須,可以指定處理方法。

你配置里寫了method={1}就會調用對應的方法,只有當你沒指定method時,struts2才會默認調用execute 方法。

<package name="helloworld" extends="struts-default">    
      <action name="hello"
            class="MyFirstPackage.HelloworldAction"
            method="execute">
            <result name="success">/HelloWorld.jsp</result>
      </action>
   </package>

 

@總結:

1,規范是沒有理由的。跟if...else一樣,java語法就是這樣定的,沒有為什么。

2,在action中,必須要有對應的get和set方法,只要有get和set方法,action中值就能獲取到,值都能傳到前台。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM