關於struts2 中action 屬性沒有 set 方法 依然會注入值的問題(解決)
無意中發現,屬性沒有寫set get 方法,依然會注入值和取到值.
甚是不解,求助於網上依然沒有得到解決!
花了點時間看了下原始碼!
發現:
struts2 引數攔載器在注入值的時候,有兩種機制,(呼叫ognl)
這是OgnlRuntime 類中一段原始碼 hasSetMethod( context, target, targetClass, name ) || hasField( context, target, targetClass, name );
他會先檢視你的action 中有沒有對應的方法,如果發現無此方法,他會利用第二種方法直接給屬性覆值,而無需對應的set方法!(當然都是通過反射機制實現的)
from:
東avaj東的部落格http://blog.sina.com.cn/u/1866397122
相關推薦
關於struts2 中action 屬性沒有 set 方法 依然會注入值的問題(解決)
以前經常看到網上和書上說,struts2 action中的屬性中要寫相對應的setXXx,getXXx方法才能接收到網頁中傳來的引數! 無意中發現,屬性沒有寫set get 方法,依然會注入值和取到值. 甚是不解,求助於網上依然沒有得到解決! 花了點時間看了下原始碼! 發現
Struts2中的get、set方法作用:Action與頁面傳值
在Struts2中,客戶端和伺服器之間的資料傳輸全部要用到get、set方法:用set方法 ,可以將表單中的值存入Action類。通過Struts2.0標籤,呼叫get方法將Action類中的結果資料顯示在頁面上。
Struts2中Action接收引數的方法:屬性,Model,ModelDriver
Struts2中Action接收引數的方法主要有以下三種: 1.使用Action的屬性接收引數: a.定義:在Action類中定義屬性,建立get和set方法; b.接收:通過屬性接收引數,如:userName; c.傳送:使用屬性名傳遞引數,如:u
【ssh】struts2中action接收引數的方法
Struts2中Action接收引數的方法主要有以下三種: Struts2中Action接收引數的方法主要有以下三種: 1.使用Action的屬性接收引數: a.定義:在Action類中定義屬性,建立get和set方法; b.接收:通過屬性接收引數,如
struts學習【1】——Struts2中的get、set方法作用
在Struts2中,客戶端和伺服器之間的資料傳輸全部要用到get、set方法:用set方法 ,可以將表單中的值存入Action類。通過Struts2.0標籤,呼叫get方法將Action類中的結果資料顯示在頁面上。 當在業務邏輯中需要用到頁面傳過來的值的時候,只要保證A
Struts2中Action屬性的值的賦值時機
在struts2中Action的屬性用來封裝請求引數,可以是普通屬性也可以是物件模型,不管何種方式,問題是:屬性的值是怎麼賦值的?考察方式可以在Action中新增一個簡單屬性,生成getter setter方法,在setter方法中新增斷點可以跟蹤。Action
Struts2中的get、set方法作用:
在Struts2中,客戶端和伺服器之間的資料傳輸全部要用到get、set方法:用set方法 ,可以將表單中的值存入Action類。通過Struts2.0標籤,呼叫get方法將Action類中的結果資料顯示在頁面上。 當在業務邏輯中需要用到頁面傳過來的值的時候,只要保證Action中屬性的se
Struts2中的get、set方法重要性
在Struts2中,客戶端和伺服器之間的資料傳輸全部要用到get、set方法 當在業務邏輯中需要用到頁面傳過來的值的時候,只要保證Action中屬性的set方法和頁面中的name屬性值<s:textfield name=""/>相同
使用@AutoWired替換struts2 Action中的get、set方法
public class LoginAction{ @Autowired private ILoginDao loginDao; @Autowired private IReportDao reportDao; ...... } sprin
struts2中 action獲取jsp頁面的引數的方法
例項:現在jsp頁面傳遞一個名為username的引數到action中 一、通過get set方法獲取 在對應的action類中定義同名變數,並生成set get方法,那麼引數將會自動獲取值 String username; public String getUsern
struts2中Action資料繫結幾種方法
struts2中的Action接收表單傳遞過來的引數有3種方法: 1> 在Action類中定義表單屬性 如,登陸表單login.jsp: <form action="login" method="post" name="form"> Us
java中boolean屬性的set,get方法
今天在測試介面返回json資料的時候,發現前臺拿到的資料和後臺的屬性不一致,把isXxxx-->xxxx了,is死去哪裡了,網上搜了資料: 根據JavaBean規範,如果欄位property是b
關於struts2中action獲取引數的三種方法
public String add() throws Exception { // ------------------------------方法一:通過設定get與set方法來獲取引數 System.out.println(thi
struts2中action接收引數的3種方法
Struts2中Action接收引數的方法主要有以下三種: Struts2中Action接收引數的方法主要有以下三種: 1.使用Action的屬性接收引數: a.定義:在Action類中定
Struts2中Action訪問Servlet API的三種方法
Struts2的Action並未直接與任何Servlet API耦合,這是Struts2的一個改良之處,因為Action類不再與Servlet API耦合,從而能更輕鬆的測試該Action。但對於Web應用的控制器而言,不訪問Servlet API幾乎是不可能的,例如跟蹤HT
java 對類中的屬性使用set/get方法的作用
經常看到有朋友提到類似:對類中的屬性使用set/get方法的作用?理論的回答當然是封閉性之類的,但是這樣對我們有什麼作用呢?為什麼要這樣設計?我直接使用屬性名來訪問不是更直接,程式碼更簡潔明瞭嗎?下面我們就來介紹下為什麼要使用set/get方法來代替直接訪問屬性。 1.
Java中對類中的屬性使用set/get方法的意義和用法
經常看到有朋友提到類似:對類中的屬性使用set/get方法的作用?理論的回答當然是封閉性之類的,但是這樣對我們有什麼作用呢?為什麼要這樣設計?我直接使用屬性名來訪問不是更直接,程式碼更簡潔明瞭嗎?下面我們就來介紹下為什麼要使用set/get方法來代替直接訪問屬性
Struts2中action接收中文參數為亂碼解決方法
tin rate 過濾 apache nrv win @override name dci 老實說,中文亂碼問題是每個程序員會經常遇到的問題,而且也是一個很頭疼的問題。網上很多關於解決中文亂碼的帖子,看幾個之後你會發現大都是一樣的。但是我們照著做,卻還是無法解決亂碼問題。我
自己定義struts2中action類型轉換器
ansi work row 接受 4.0 open 技術 oos lang DateAction.java中代碼例如以下: package com.itheima.action; import java.util.Date; public class Da
ajax前臺與struts2中action交互詳見
gin def print ces 返回 collect jdk char int 第一種方法: 利用Servlet API,用response的.getWriter()方法獲得PrintWriter Action代碼: public Object ajax(){