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