I've been thinking about this one and I do have an idea of how to hack it. Of course I would first and foremost look into the options as described by @stwissel. All what the faces-config.xml file does is make a java instance available to the runtime. You can do this manually in both java and javascript.
javascript
function MyBean{
this.getInstance = function(){
return de.company.project.MyBean.getInstance();
}
return this;
}
Java
public static getInstance(){
Map<String, Object> scopeMap = ExtLibUtil.getSessionScope();
if(!scopeMap.containsKey(BEAN_NAME)){
scopeMap.put(BEAN_NAME, new MyBean();)
}
return scopeMap.get(Bean_Name);
}
you can then access all beans as you want and the ssjs files contain the possibility to not allow design refreshes.
you can also always import this ssjs file into others
import ssjs_MyBean;
Again, hacky, but sometimes there is nothing like a good hack! Please also keep in mind that this would not allow EL (I dont think) It is strictly getting an instance of a class.