How to dynamically evaluate a tag within a java file?(上个发错了,重发)

05-05-22 logicgate
If I call a taglib from a JSP with the usual syntax
<prefix:tag1>
, and I want this tag outputs something like the following
<prefix:tag2>
or
<prefix:tag3>
, depends on the attribute value of tag1. But the problem is, the
<prefix:tag2>
will end up written to the browser.

So my question is, how to dynamically evaluate a tag within a java file?

banq
2005-05-23 09:05
使用logic这样 tag进行判断,就像使用JSF语句一样。

utstarcom
2005-05-23 10:30
could you give more details?

logicgate
2005-05-23 12:14
谢谢banq大哥,不过我想我可能没有说清楚问题。

其实我是想做一个propertyTable的tag,根据一个object的各个attribute的属性,显示一个表格,让用户输入相应的数据。这个tag也可以显示一个已经存在的object的属性。在客户端(jsp业面),只需要用

<prefix:propertyTable objectSchemaId="customer"/>

就可以显示如下的一个表格:

――――――――――――――――――--――――――――――――

| 顾客姓名(String): | 文本输入框(能输入文本或数字) |

| 顾客性别(String): | 下拉选择菜单(显示“男”或“女”) |

| 消费额(Double): | 文本输入框(只能输入数字) |

―――――――――――――――――――――――――――――――

object的属性是在xml里定义的,在PropertyTableTag的doStartTag()方法中,会先根据objectSchemaId拿到customer这个object所有的attribute,然后根据每个attribute的数据类型,动态的在客户端显示不同的输入框。比如说如果消费额的数据类型时double,客户端就显示一个文本输入框,但只能输入数字。代码如下:

if(attributeSpec.getDataType().equalsIgnoreCase("Doube"))
{
    htmlCode.append("<prefix:myInput name='xxx' dataType='Double'/>");
}
<p>

其中myInput是我自己写的tag,会根据dataType的不同显示不同的input,但实际上运行的时候myInput的tag handler并没有被调用,

<prefix:myInput name='xxx' dataType='Double'/>

被直接显示到客户端。

So,我的问题就是,怎样可以在PropertyTableTag中得到myInput所对应的html代码?

希望各位能给我一些建议。

猜你喜欢