如何在将tile插入页面之前检查tile属性的存在

Bil*_*rza 5 struts2 tiles java-ee apache-tiles

我在struts2应用程序中使用tile.在定义基本布局时,我定义了一个属性"scriptFile".

<definition name="baseLayout" template="/application/base-layout.jsp" >
    ... 
</definition>

<definition name="custom.tiles" extends="baseLayout">
    <put-attribute name="scriptFile" value="js/custom-script.js"></put-attribute>
</definition>
Run Code Online (Sandbox Code Playgroud)

如果开发人员在切片定义文件"tiles.xml"中提供"scriptFile",则应使用以下行包含此脚本文件

<script language="javascript" src="<tiles:insertAttribute name="scriptFile"></tiles:insertAttribute>"></script>
Run Code Online (Sandbox Code Playgroud)

但是,如果未定义scriptFile属性,则必须跳过此行.

如何检查tile中是否存在"scriptFile"属性.有没有更好的方法来做这件事?

Ale*_*r M 0

只需使用ignore属性

<script language="javascript" src="<tiles:insertAttribute name='scriptFile'  ignore='true'/>"></script>
Run Code Online (Sandbox Code Playgroud)

并且不要输入scriptFile您的定义。

更新

getAsString那么在布局中使用标签怎么样

<tiles:getAsString name="jscript" ignore="true" />
Run Code Online (Sandbox Code Playgroud)

并在定义中放置整个转义脚本标记。

<put-attribute name="jscript" value="&lt;script src='js/custom-script.js' type='text/javascript'>&lt;/script>" />
Run Code Online (Sandbox Code Playgroud)