Geçiş AKSARAY 2.0 OLUMSUZLUK 1.2
Oldukça geniş bir uygulama yazılmış çalışıyorumAKSARAY 1.2. AKSARAY 1.2 civarında 6 yaşında şimdi. 2.0 OLUMSUZLUK yükseltmek istiyorum. Bunun ne kadar acı verici olacak? Özel etiketleri bazı özellikler vb değiştirilmiş olduğunu fark ettim.
CEVAP
Acı
2.0 için OLUMSUZLUK 1.2 yükseltme acı şu anda kullandığınız ve kullanmak istediğiniz görünümü teknolojiye bağlıdır.
- JSP 2.JSP 2 x.x = Neredeyse hiç çaba harcamadan.
- Facelets 1.x 2.0 = Az çaba Facelets.
- JSP 2.Facelets x 2.0 = çaba Çok. Eğer siz de özel bileşenler varsa bu çift.
Temel deÄŸiÅŸiklikler
Görünüm teknoloji anahtarı ne olursa olsunen azındanaşağıdaki adımlar yapılmalıdır:
/WEB-INF/libAKSARAY 1.2 KAVANOZ (varsa) kaldırın.- Bırak AKSARAY 2.0 KAVANOZ
/WEB-INF/lib(eğer OLUMSUZLUK 1.2 oldu servletcontainer tarafından sağlanan, istersin değiştirmek için classloading politikası yük web-kütüphaneler ilk önce servletcontainer kütüphaneler, Ayrıca bakınız JSF2 classloading issues in application servers). Güncelleme
faces-config.xmlilanı AKSARAY 2.0 spec uygun kök.<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0">web.xmlkök Bildirgesi, uygun emin olunen azındanSunucu uygulaması 2.5. AKSARAY 2.0 2.4 veya daha düşük (although it's hackable) çalışmaz.<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="YourWebappID" version="2.5">
JSP 2.JSP 2 x.x
KullanıyorsanızJSP 2.xve isterdevam etbunu kullanarak, temelde başka bir şey değiştirmek gerekmez.
Yavaş yavaş yükseltiliyor
Eğer sen zaten bir sonek kullanarak url-pattern FacesServlet gibi *.jsf, o zaman iyi bilen FacesServlet ilk tarama için *.xhtml dosya ve eğer yoksa, o zaman tarama için *.jsp dosya. Bu oda yavaş yavaş URL değiştirmeden perde arkasında Facelets için JSP dönüştürmek sağlar.
Ama kullanıyorsanız bir önek url-pattern gibi /faces/* ve yavaş yavaş yükseltme JSP için Facelets, o zaman gerçekten onu değiştirmek için *.jsf ve belki de tüm bağlantılar mevcut JSP sayfaları.
Sadece yeni AKSARAY 2.0 sağlanan örtülü gezinti dosyanın varlığı için tarama değil, outcome.xhtml zaten gidecek akılda tutmak gerekir. Eğer veya *.jsp, gitmek istiyorsanız, o zaman hala viewıd, AKSARAY 1 eklemek gerekir.x yol.
Facelets 1.Facelets x 2.0
KullanıyorsanızFacelets 1.xteknoloji görünüm ve 2.0 sağlanan AKSARAY kullanmak istiyorumFacelets 2.0o zaman ihtiyacınız olan aşağıdaki ek adımları yapmak için:
- Facelets 1 Çıkarın.x
/WEB-INF/libJAR. - Facelets 1 Çıkarın.x 33* *
faces-config.xml. FaceletViewHandlerherhangi bir özel uygulamaViewHandlerWrapperyerine genişletmek için güncelleştirilmesi gerekiyor.- Gerekli değil, ama temizlik için, herhangi bir Facelets 1 çıkarın.x ilgili
<context-param>zaten Facelets varsayılan olanweb.xmldeğerleri*.xhtmldeğerjavax.faces.DEFAULT_SUFFIXgibi 2.0,. Mevcut Facelet taglib XML kök güncelleştirme bildirimi 2.0 Facelets uygun.
<facelet-taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facelettaglibrary_2_0.xsd" version="2.0">
Bu temelde olmalıdır.
JSP 2.Facelets x 2.0
KullanıyorsanızJSP 2.xteknoloji görünüm ve yükseltmek istiyorumFacelets 2.0hemen sonra site yayımlanmadan önce bir çok değişiklik yapmak gerekir. Temelde burada görünüm teknoloji değiştiriyorsun.
Ana Sayfa deÄŸiÅŸtirir
Her ana sayfasında, aşağıdaki temel JSP şablon.. değiştirmek gerekir
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE html>
<f:view>
<html lang="en">
<head>
<title>JSP page</title>
</head>
<body>
<h:outputText value="JSF components here." />
</body>
</html>
</f:view>
aşağıdaki temel Facelets için ..şablon:
<!DOCTYPE html>
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<title>XHTML page</title>
</h:head>
<h:body>
<h:outputText value="JSF components here." />
</h:body>
</html>
Sayfa değişiklikleri vardır
Eğer mevcut JSP sayfaları iyi tasarlanmış ise, herhangi bir hat olmamalıdırkomut dosyası uygulamacığıkod ve siz de JSP özel tek olarak <jsp:include> sadece etiketi var. Bunlardan herhangi birinden değiştirilmesi gerekir:
<jsp:include page="include.jsp" />
için
<ui:include src="include.xhtml" />
Temel JSP.. sayfa şablonu vardır
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<f:subview id="include">
<h:outputText value="JSF components here." />
</f:subview>
..sayfa şablonu vardır aşağıdaki temel Facelets şekilde değiştirilmelidir:
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:outputText value="JSF components here." />
</ui:composition>
Özel bileşeni değiştirir
Mojarra Migration Guide bu açıklandığı gibi Facelets KARŞILIK dosyalarını JSP kullanan programlardır dosyaları değiştirmeniz gerekir.
Sonrasında
Göç yaklaşımı ne olursa olsun, yavaş yavaş 82 ** yeni AKSARAY 2.0 ek açıklamalar ile faces-config.xml. <managed-bean> @ManagedBean açıklamalı olabilir:
@ManagedBean(name="managedBeanName")
@RequestScoped
public class SomeBean {}
* *84, yanında da @ViewScoped, @SessionScoped ve @ApplicationScoped vardır. @ManagedBean name özniteliği atlarsanız, varsayılan 1 char lowercased ile code.
@ManagedBean
@RequestScoped
public class SomeBean {}
Bu örnekte, #{someBean} olacak.
<managed-property> @ManagedProperty kullanarak açıklamalı olabilir:
@ManagedProperty("#{otherBean}")
private OtherBean otherBean;
<validator> açıklamalı @FacesValidator kullanarak herhangi bir:
@FacesValidator("someValidator")
public class SomeValidator implements Validator {}
<converter> açıklamalı @FacesConverter kullanılarak yapılabilir
@FacesConverter("someConverter")
public class SomeConverter implements Converter {}
<renderer> açıklamalı @FacesRenderer kullanılarak yapılabilir
@FacesRenderer(componentFamily="someComponentFamily", rendererType="someRendererType")
public class SomeRenderer extends Renderer {}
<from-outcome> <to-view-id> de bu implicitly olacağından kaldırılabilir olarak XHTML sayfasının dosya adını kullanan <navigation-case> bunu yapmış. Bu yavaş yavaş tüm sonuç değerleri hedef görünümü adını eşleşecek şekilde değiştirerek yapılabilir.
Son olarak, herhangi bir oturum kapsamlı fasulye hangi büyüyü oturumu ile tek nedeni korur fasulye veri sonraki istekleri aynı sekme/pencere daha belirgin @ViewScoped, çünkü bu şekilde fasulye olmayacak etkilenen zaman son kullanıcıya açılıyor aynı sayfa içinde farklı sekmeler/windows.
Bileşen kütüphaneleri
Not bunu kabul etmiyorum herhangi bir 3. parti componant kütüphaneler gibi PrimeFaces/RichFaces/İceFaces içine hesabında bu cevap, daha sonra olması imkansız yazmak için bir güvenilir cevap beri bu temelde aşağı kaynar için "duruma göre değişir". Sadece bir bileşen kitaplığı yükseltmek için yeterli genel olarak-kendilerini doğrulanmış - 2.0 OLUMSUZLUK onların talimatına uygun olarak uyumlu bir sürümü. En iyisi sadece birim testleri yazmak, ve yükseltmeden önce ve sonra onları çalıştırmak ve herhangi bir sorunları tek tek gidermek için.
Burada belirli bir bileşen kitaplığı göç konusunda en azından bazı yararlı linkler:
- RichFaces Migration Guide - 3.3.x to 4.x migration
- IceFaces 2 Wiki - IceFaces 1.x Compatibility Guide
PrimeFaces PrimeFaces 1 için geçiş Rehberi Var.2-x.x 1 PrimeFaces.x Facelets 1 gerektirir.x zaten, o yüzden sadece 1 Facelets takip etmek zorunda.2-x.x adım geçiş. Ancak, bir şey de PrimeFaces PrimeFaces 1 geçiş üzerinde geçerli olabilecek 2.x to 3.x migration guide.3 x.x. Tomahawk da hiçbir geçiş Rehberi Var. Temelde küplerin değiştirmek için gereken ve gerekirse tek bir isteği bean bean görünüm kapsamı yaparak kapsamlı <t:saveState> tüm başvurular kurtulmak.

AKSARAY destek fasulye bir yöntem OLUM...
Nasıl görünümler arasında geçiş yapmak...
Ve nasıl kullanılmalıdır?için AKSARAY ...
Nasıl gıt dallar arasında geçiş yapark...
Java'da boolean bir değişken geçiş yol...