我有一个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>
答案 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), };
}
}