İpucu

ResourceHandlerWrapper Kullanarak Resource Başına Domain Eklemek

JSF'de resource lar (css, js vb..) /javax.faces.resource/* şeklinde başlayacak şekilde header içine eklenmektedir.
Eğer sizin siteniz başka bir sitenin içinde iframe'de gösterilmek istendiğinde sorun çıkabilmektedir.
Bunun yerine bu resource'ları DOMAIN/javax.faces.resource/* şeklinde eklenmesini sağlayabilirsiniz.


Bu işlemi yapabilmek için ResourceHandlerWrapper extend edilmelidir. Örneğin sınıf aşağıdaki gibidir :


import javax.faces.application.*;
public class DomainResouceHandler extends ResourceHandlerWrapper {
	private ResourceHandler wrapped;
	public DomainResouceHandler(ResourceHandler wrapped) {
		this.wrapped = wrapped;
	}
	@Override
	public Resource createResource(final String resourceName, final String libraryName) {
		final Resource resource = super.createResource(resourceName, libraryName);
		return new ResourceWrapper() {
			@Override
			public String getRequestPath() {
                              return "http://example.com/"+resource.getRequestPath();
			}
			@Override
			public Resource getWrapped() {
				return resource;
			}
		};
	}
	@Override
	public ResourceHandler getWrapped() {
		return wrapped;
	}
}
DomainResouceHandler sınıfı ResourceHandlerWrapper'dan extend edilmiş ve createResource method'u override edilmiştir.
Yeni bir ResourceWrapper yaratılmış ve verilmiştir. Bu resource wrapper'da getRequestPath methodunun için değiştirilip domain eklenmiştir.
Bu şekilde http://example.com/javax.faces.resource/* şeklinde domain altından resource'ların yüklenmesi sağlanmıştır

Bu handler çalışması için aşağıdaki ifadenin faces-config.xml'de olması gerekiyor:
<application>
 		 <resource-handler>com.done.rabbit.support.resource.DomainResouceHandler</resource-handler>
 	</application>
zafer.teker , 15.09.2015

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir

Misafir Yorumları




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir