如何获取liferay的网页内容速度模板中选择的项目的值和文本?

时间:2012-07-26 08:01:43

标签: liferay structure velocity liferay-velocity webcontent

我的结构有1个选择列表和1个多选列表

<dynamic-element name="mySLMenu" type="list" index-type="keyword" repeatable="false">
    <dynamic-element name="itemOne" type="0" index-type="" repeatable="false"></dynamic-element>
    <dynamic-element name="itemTwo" type="1" index-type="" repeatable="false"></dynamic-element>        
</dynamic-element>
<dynamic-element name="myMSMenu" type="multi-list" index-type="" repeatable="false">
    <dynamic-element name="itemOne" type="0" index-type="" repeatable="false"></dynamic-element>
    <dynamic-element name="itemTwo" type="1" index-type="" repeatable="false"></dynamic-element>    
</dynamic-element>

我在我的速度中使用以下选项列表:

$mySLMenu.getData()

和多选列表:

#if($myMSMenu.getOptions().size() >0)
    <select multiple>
    #foreach($item in $myMSMenu.getOptions())
        <option> $item </option>
    #end
    </select>
#end

但它只返回我所选项目的类型,我想同时获得类型(值)和文本(名称),请指示我。

1 个答案:

答案 0 :(得分:0)

name的信息未存储到数据库中的JournalArticle,只有类型的数据库中存储:

<dynamic-content>\u000a\u0009\u0009\u0009<option><![CDATA[0]]></option>\u000a\u0009\u0009\u0009<option><![CDATA[1]]></option>\u000a\u0009\u0009</dynamic-content>\u000a\u0009</dynamic-element>

但是,您不能简单地从多列表元素中保存此信息。

建议:如果这足以满足您的要求,您可以采用与type相同的name

<dynamic-element name="myMSMenu" type="multi-list" index-type="" repeatable="false">
    <dynamic-element name="itemOne" type="itemOne" index-type="" repeatable="false"></dynamic-element>
    <dynamic-element name="itemTwo" type="itemTwo" index-type="" repeatable="false"></dynamic-element>    
</dynamic-element>