A munkamenet hatókörű komponensekben az átmeneti mezők átállása sikertelen

Ez a szabály megjelöli a transient módosítóval rendelkező mezőket a @SessionScoped annotációval ellátott osztályokban. A Contexts and Dependency Injection (CDI) 1.0 OpenWebBeans megvalósításban egy alkalmazás beállíthat transient mezőket közvetlenül a munkamenet hatókörű komponensekhez. A CDI 1.2 Weld megvalósításban a transient mező közvetlen beállítása nem eredményezi a mező feltöltését egy átállás után, ami váratlan viselkedést okozhat az alkalmazásban.

Ellenőrizze, hogy a szabály által megjelölt minden transient mező csak egy, a tartalmazó osztály által adott módszer használatával van beállítva. Ha a mezőhöz nem található beállító módszer, akkor adjon hozzá egy set módszert, és hívja meg azt a mező közvetlen beállítása helyett.

a következő példában a UserBean osztálynak van egy @SessionScoped annotációja. Az osztály tartalmaz egy olyan transient módosítóval rendelkező mezőt is, amely egy beállító módszer használatával van beállítva.

 @Named(érték = "userBean")
@SessionScoped nyilvános osztály UserBean megvalósítja a UserInterface, Serializable {
	Karaktersorozat neve; ideiglenes karaktersorozat nickName;

	...

	Public void setNickName (String nick) {
	    nickName = nick;
	}

A Java Platform, Enterprise Edition (Java EE) 7 CDI 1.2 megvalósítással kapcsolatos további információkért tekintse meg a következőt: Contexts and Dependency Injection 1.2 viselkedésváltozásai.