快速写表

时间:2009-12-22 19:01:46

标签: scala lift

我有以下功能,我想写入页面而不是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)
    }

}

Fernando Avalos。

2 个答案:

答案 0 :(得分: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>
}

答案 1 :(得分: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")))
          ))

}