通过体内的taglib定义变量

时间:2014-02-20 20:25:46

标签: java variables taglib

我有一个taglib

<po:create-option-entry var="optionEntry">

    <li>${optionEntry.name}: <%=HtmlElementUtil.printAction(optionEntry.getAction())%></li>

</po:create-option-entry>

我得到的例外是未定义optionEntry ..我已经看过一些像这样的代码但是无法记住它是如何连接的,以使变量在taglib的主体内可见。

ps:taglib的定义如下

<tag>  
    <name>create-option-entry</name>
    <tagclass>br.com.facilit.portlets.planooperativo.taglib.action_menu_entry.CreateOptionEntryTag</tagclass>   
    <bodycontent>JSP</bodycontent>

    <attribute>
        <name>var</name>
        <required>true</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
</tag>

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。我需要做的就是创建一个CreateOptionEntryTei

<tag>  
    <name>create-option-entry</name>
    <tagclass>pack.CreateOptionEntryTag</tagclass>
    <teiclass>pack.CreateOptionEntryTei</teiclass>
    <bodycontent>JSP</bodycontent>
    <attribute>
        <name>var</name>
        <required>true</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
</tag>

并定义类似

的类
public class CreateOptionEntryTei extends TagExtraInfo {

    public VariableInfo[] getVariableInfo(TagData data) {

        String var = data.getAttributeString("var");

        return new VariableInfo[] { new VariableInfo(var, OptionEntry.class.getName(), true, VariableInfo.NESTED), };
    }
}