Die [JSF Spring Integration] enthält zusätzlichen Integration, um [JSF Ext] zusammen mit Spring verwenden zu können. !!!Custom Scope Injection Beim Laden von Scopes werden typischer Weise Parameter übergeben: {{{ <h:commandButton image="#{resource['images/bitcons:edit.gif']}" title="#{messages['edit']}"> <f:ajax/> <e:load scopeId=":user-input"> <f:param name="user" value="#{user}"/> </e:load> </h:commandButton> }}} Der Wert wird zunächst in den geladenen Scope geschrieben. Die Parameter können generell mit der Spring-Annotation @Value injiziert über eine EL-Expression injiziert werden: {{{ }}} Allerdings macht Spring Probleme, wenn die EL-Expression zu null evaluiert oder das Property nicht gefunden werden kann. Des Weiteren stört die unnötige EL-Expression, da der Wert bereits durch den Feld- bzw. Methodennamen klar ist, ähnlich bei @Autowired. Durch die Annotation @ScopeValue kann dies eleganter erreicht werden: {{{ @Component @Scope(Scopes.CUSTOM_SCOPE) public class UserEdit { @ScopeValue private User user; public User getUser() { if (user == null) user = new User(); return user; } public void setUser(User user) { this.user = user; } } }}} Die Annotation @ScopeValue ist vergleichbar mit @Value("#{scope.user}"). Allerdings ist die Injection effizienter, da keine EL-Expression evaluiert wird und es kommt zu keinen Problemen, falls der Wert nicht vorhanden ist.