1. 程式人生 > >關於struts2中Action例項

關於struts2中Action例項

一直都說struts2.x與struts1.x有個很大的區別就是在struts1.x中Action是單例的而在struts2.x中是原型,即每次請求建立一個新的例項,但有一次發現並不這是這樣,因為我沒有傳相應欄位的值,但欄位卻有值了,後來在Action中列印System.out.println(this);打印出來hashcode是相同的,說明兩次請求是同一個Action例項,後來發現這是因為strtus2與Spring集成了,整合後Action的生命週期管理交由了Spring,而Spring對Action例項進行了快取,故而出現這樣的結果,如果不整合Spring,Action由stuts2自己的ObjectFactory進行管理的話就是每次請求生成一個Action例項了,當然在Spring中也想每個請求生成一個Action例項,可以在Action類上新增一個@Scope("prototype")註解。