2009-12-22 48 views
0

我有以下功能,我想寫入頁面而不是println。我怎樣才能做到這一點?我需要一個包含這些信息的表格,但是我沒有找到任何有關這方面的信息,我看到了如何在頁面上編寫集合,但我更願意隨時寫入頁面。動態寫表

預先感謝,並希望對您有所迴應。

def tablaAmortizacion(xhtml:NodeSeq,monto:Double,amort:Double,start:java.util.Calendar) { 
    var formatter = new java.text.SimpleDateFormat("dd/MM/yyyy") 
    var end = new java.util.GregorianCalendar() 
    end.setTime(start.getTime) 
    end.add(java.util.Calendar.MONTH,1) 
    var difference = Math.abs(start.getTimeInMillis - end.getTimeInMillis) 
    var days = difference/(1000 * 60 * 60 * 24) 

    println("Monto sal: " + monto + " Amortizacion: " + amort + " Start: " + formatter.format(start.getTime) + " End: " + formatter.format(end.getTime) + " Days: " + days) 

    if (monto > amort) { 
     tablaAmortizacion(xhtml,monto-amort,amort,end) 
    } 

} 

費爾南多·阿瓦洛斯。

+0

你看了如何綁定內容來查看電梯? http://wiki.github.com/dpp/liftweb/how-to-binding-view-content-to-code – 2009-12-22 19:22:10

+0

是的,我做到了。但我只是看到如何從集合中映射表並想要即時寫入我的頁面。或者我錯了? 謝謝。 – Favalos 2009-12-22 20:33:46

回答

0

我不知道你的意思寫的頁面。你的意思是你想要在桌面渲染後動態地添加你的表格嗎? 如果你的意思是以ajax的方式,你應該看看彗星聊天應用程序。

還是你的意思是你需要某種表達式語言如JSP/JSF頁面做? 如果你的意思是像jsp/jsf頁面,答案是你無法通過設計。如果你需要動態生成html,你可以在你的代碼片段中做到,而不是在xhtml中。

這裏的答案: 在你的XHTML文件,你可以有這樣的:

<table> 
    <thead> 
    <tr> 
     <th>First Name</th> 
     <th>Middle Name</th> 
     <th>Last Name</th> 
     <th/> 
    </tr> 
    </thead> 
    <tbody> 
    <lift:PersonSnippets.list> 
     <tr> 
      <td> 
       <party:firstName/> 
      </td> 
      <td> 
       <party:middleName/> 
      </td> 
      <td> 
       <party:lastName/> 
      </td> 
      <td> 
       <party:edit/> 
       <party:delete/> 
      </td> 
     </tr> 
    </lift:PersonSnippets.list> 
    </tbody> 
</table> 

然後您摘錄的樣子:

def list(xhtml: NodeSeq): NodeSeq = { 

val people = Model.createNamedQuery[Person]("findAllPeople").getResultList() 

people.flatMap(person => 
     bind("party", xhtml, 
      "firstName" -> Text(person.getFirstName()), 
      "middleName" -> Text(person.getMiddleName()), 
      "lastName" -> Text(person.getLastName()), 
      "edit" -> link("/contact/person/edit",() => personVar(person), Text(?("Edit"))), 
      "delete" -> link("/contact/person/delete",() => personVar(person), Text(?("Delete"))) 
     )) 

}

+0

我需要動態生成html,或將我的代碼映射到模板中的標記。但是,我不想使用集合進行映射,我希望每次調用mi遞歸函數時都要編寫它。 – Favalos 2009-12-22 23:44:35

+0

這是可行的嗎? – Favalos 2009-12-22 23:47:57

2

或者,你可以這樣做這是您在該方法中生成表格的位置。

def list = <table> 
<thead> 
<tr> 
    <th>monto-amort</th> 
    <th>amort</th> 
    <th>end</th> 
    <th/> 
</tr> 
</thead> 
<tbody> 
    {generateTableBody()} 
</tbody> 

def generateTableBody = { 
//calculate values here. 
<tr><td>{monto-amort}</td><td>{amort}</td><td>{end}</td></tr> 
}