剛接觸SSH,確實感覺到他的強大和便捷,。在學習過程中遇到了一些困惑,,解決后想要寫寫,在自己以后的編程中盡量避免,,并幫助一些菜鳥朋友快速入門,。 Struts2前臺后臺的數(shù)據(jù)傳遞問題,我要分兩方面說,,首先,,我要說后臺數(shù)據(jù)如何通過前臺用戶輸入來獲取的。至于Struts2跳轉(zhuǎn)流程這里不做介紹,。首先,,Struts利用Action來接收前臺數(shù)據(jù),他繼承了ActionSupport類,。在前臺中,,假設(shè)有username和password兩個屬性,如: <body> 那么在對應Action中,,如LoginAction中,,想要接收用戶輸入的信息,就必須有和前臺接收參數(shù)同名的屬性,按上述代碼,,LoginAction中必須有username和password兩個屬性,。其次,為了能夠獲取屬性,,還要為這兩個屬性設(shè)置特有的get()set()方法,,這樣Struts2才能調(diào)用這兩個方法對屬性獲取。第三,,在獲取時,,直接寫屬性名就可以。當然,,LoginAction要實現(xiàn)ActionSupport,。如: public String execute(){ 這樣在前臺用戶輸入的信息就能被后臺獲取了。 第二我要說的是如何在前臺獲取后臺的數(shù)據(jù),。首先,,要用Action訪問Servlet API。這里不作為重點,,只提供一種方法,即ServletActionContext訪問Servlet API,。 public String list(){ 用ActionContext.getContext()方法得到PageContext對象,。ct.put()方法是將list鏈表放到名為“box”的里面。box名是任意的,。這樣就可以在前臺獲取了,。 <table> 上面用到Struts2標簽,這里不做解釋,,請查API,。iterator用來遍歷集合。value值就是后臺用put()方法放入的名稱,,上題是box,。property是輸出單一屬性,value為輸出內(nèi)容,。這里重點說一下OGNL表達式,。 OGNL為表達式,用來顯示對象屬性,。用OGNL顯示屬性有兩種: 1,、當訪問OGNL的Stack context里根對象的屬性時,可以省略對象名,。 如:若foo為context的根對象,,假設(shè)foo有blah屬性,前臺獲取該屬性時,只需寫: blah,;//調(diào)用了foo的getBlah()方法返回屬性值,。 2、當訪問OGNL的Stack context里非根對象的屬性時,,要用#對象名.屬性訪問,。 如:#person.name 下面的問題就是如何確定哪些是OGNL的Stack context里根對象,進而選擇用哪種方法,。 |
|
來自: RoryShaw > 《框架技術(shù)》