什么是;foo?.bar“;你是说Groovy? #{if adsonuiasetlist.size()>0} #{列表项:ADSONUIASETLIST,as:'adsonui'} 资产:${adsonui?.productname}(${adsonui?.AssetId})广告客户:${adsonui?.campaign.Advertiser.contact_person}(${adsonui?.campaign.Advertiser.id})
#{/list} #{/if}什么是;foo?.bar“;你是说Groovy? #{if adsonuiasetlist.size()>0} #{列表项:ADSONUIASETLIST,as:'adsonui'} 资产:${adsonui?.productname}(${adsonui?.AssetId})广告客户:${adsonui?.campaign.Advertiser.contact_person}(${adsonui?.campaign.Advertiser.id}),groovy,syntax,Groovy,Syntax,#{/list} #{/if} 有人能解释一下${adsonui?.productname}代表什么吗?。请告诉我groovy和play framework pelase的新功能。如果adsonui不为空,则${adsonui?.productname}将返回adsonui.productname 或null如果为null 它叫?允许在foo为空时避免NPE异常 请参阅axample-第一个println为null,第二个失败 #{if adsonuiAssetList.size()>0
有人能解释一下${adsonui?.productname}代表什么吗?。请告诉我groovy和play framework pelase的新功能。如果
adsonui
不为空,则${adsonui?.productname}将返回adsonui.productname
或null
如果为null
它叫?允许在foo为空时避免NPE异常 请参阅axample-第一个println为null,第二个失败
#{if adsonuiAssetList.size()>0}
#{list items:adsonuiAssetList, as:'adsonui'}
<div class="imageElement">
<h3>Asset : ${adsonui?.productname}(${adsonui?.AssetId}) Advertiser : ${adsonui?.campaign.advertiser.contact_person}(${adsonui?.campaign.advertiser.id})</h3>
<p></p>
<a href="@{Assets.showAssetDetails()}?assetid=${adsonui?.AssetId}" title="${adsonui?.productname}" class="open"></a>
<img src="@{Assets.getAssetFileForSlideShow(adsonui?.AssetId,adsonui?.campaign?.mode_of_advertisement,870,240)}" alt="${adsonui?.productname}" class="full" />
<img src="@{Assets.getAssetFileForSlideShow(adsonui?.AssetId,adsonui?.campaign?.mode_of_advertisement,150,150)}" alt="${adsonui?.productname}" class="thumbnail" />
</div>
#{/list}
#{/if}
也就是说,您不需要测试foo是否为空,并决定是否可以使用参考条Thank you@Marmite Bomber
def foo
println foo?.bar
null
println foo.bar
Caught: java.lang.NullPointerException: Cannot get property 'bar' on null object