playframework、ajax和get请求的可重用性..如何实现?

playframework、ajax和get请求的可重用性..如何实现?,playframework,Playframework,这些标记让我编写了带有_ticket的html,而当我为ajax编写html时,我编写了“ticket”。下面是ajax调用的html…(注意变量票证) 它将不起作用,因为我必须在每种情况下都将上面的页面修改为_ticket,这样它才能工作(我更喜欢seam如何拥有全局变量和传入的能力,就像在这种情况下,我只需要使用全局ticket就可以了) 无论如何,有没有办法在playframework中编写类似这样的脚本,以便上面的页面在这两种情况下都能工作????哦,等等,作为一个标签,它必须进入标签文

这些标记让我编写了带有_ticket的html,而当我为ajax编写html时,我编写了“ticket”。下面是ajax调用的html…(注意变量票证)

它将不起作用,因为我必须在每种情况下都将上面的页面修改为_ticket,这样它才能工作(我更喜欢seam如何拥有全局变量和传入的能力,就像在这种情况下,我只需要使用全局ticket就可以了)

无论如何,有没有办法在playframework中编写类似这样的脚本,以便上面的页面在这两种情况下都能工作????哦,等等,作为一个标签,它必须进入标签文件夹!!!!grrrr


嗯,我能想到的解决这个问题的唯一干净的方法是让projectInfo页面.html简单地成为#{projectInfo标签:ticket},然后将上面的代码移到tags文件夹,然后将#{projectInfo标签:ticket}添加到我的主页面上,让get请求同时适用于get和ajax调用。这有点难看。还有人遇到过这种情况吗?有没有办法摆脱我必须使其可重复使用的额外文件?

这不是很优雅,可能有更好的解决方案,但您可以在标记中执行类似操作:

#{if _ticket}
    #{set ticket:_ticket}
#{/if}

这会将
ticket
变量设置为参数
\u ticket
。显然,在您的情况下,
ticket
已设置,而
\u ticket
未设置的情况下,上面的if语句将返回false,因此
ticket
仍将按原样工作。

上面的代码可以重复使用,您只是在太多的地方将
ticket
更改为
\u ticket
。在select标记中,名称元素(即,作为名称发送到POST中的服务器的位)不需要更改。这是纯文本而不是变量

因此,您的代码应该如下所示

#{select 'ticket.release', items:_releases, valueProperty:'id', labelProperty:'name', value:_ticket?.release?.id/}
这需要您传入
releases
列表和
ticket
属性。请注意,开头的
ticket.release
部分没有下划线。这意味着选择的值以正确的方式发送到服务器

另外,如果您只需要一段可重用的HTML代码,而不是一个标记,那么您可以使用include标记

如文档所述…
include
包含另一个模板。当前模板的所有变量都可以直接在包含的模板中使用

<div id="tree">
    #{include 'tree.html' /}
</div>

#{包括'tree.html'/}

cool,给了你分数。我不知道@codemwnci发布的include标签……那一个太棒了!!!!
#{select 'ticket.release', items:_releases, valueProperty:'id', labelProperty:'name', value:_ticket?.release?.id/}
<div id="tree">
    #{include 'tree.html' /}
</div>