2013-08-28 24 views
5

Her sayfa için bazı durumlara sahip durum bilgisi olan birkaç sayfam var. Örneğin, her sayfa gönderilmiş bir form var.Durum bilgisi olan sayfanın son sürümüne bağlantı

Bu durumsal sayfaların son sürümlerine bağlantı içeren bir menüyü nasıl düzenleyebilirim? Her sayfa için uygun nesneye başvurum (oturumda olabilir) depolamam gerekir mi? Ben

onClick() { setResponsePage(MyPage.class); } 

kullanırsanız ben sayfasının önceki halini kaybetmek daha. Sayfanın son durumuna bağlantı vermek istiyorum.

cevap

1

Sayfa her oluşturulduğunda, sayfanın kimliğini oturumda saklayın. Tanımlayıcıları tutmak için liste veya yığın veri yapısı kullanılabilir.

Gezinme menüsünü, oturumdaki her sayfa kimliği için yeni bir bağlantı oluşturan bir tekrarlayıcı (Yinelenen Görünüm veya benzeri) kullanarak uygulayabilirsiniz.

Page pageInstance = (Page) new PageProvider(pageId, null).getPageInstance(); 
setResponsePage(pageInstance); 
0
pageId = this.getPageId(); // get current version of lets say a HomePage 


//OnClick for Link 
public void onClick() 
     { 
     WebPage homePageInstance = 
      (WebPage) new PageProvider(HomePage.pageId, null).getPageInstance(); 
     setResponsePage(homePageInstance); 
     } 
    }); 
+2

kodu kendiliğinden açıklayıcı değil. Lütfen kodunuzda, yazarınızın kodunuzun çözmeye çalıştığı şeyi anlayacağı konusunda bir açıklama ekleyin. – rajuGT

0

Ben yapıcı aracılığıyla int previousId parametre geçirerek yapmak: aşağıdaki gibi kullanıcıyı yönlendirebilirsiniz bağlantının tıklama işleyicisi

@MountPath(value = "editSomethingPage") 
public class TestPage extends WebPage { 

int previousPageId = 0; 

public TestPage(int previousPage) { 
    super(); 
    this.previousPageId = previousPage; 
} 

@Override 
protected void onInitialize() { 
    super.onInitialize(); 
    add(new Link("goBack") { 
     @Override 
     public void onClick() { 
      if (previousPageId != 0) { 
       setResponsePage((Page) AuthenticatedWebSession.get().getPageManager().getPage(previousPageId)); 
      } else { 
       setResponsePage(PreviousPage.class); 
      } 
     } 
    }); 
    } 
} 

Yeni sayfa örneğinin oluşturulmasını engeller ve kullanıcı tarafından yapılan tüm sayfa durumlarını saklar.

İlgili konular