代码之家  ›  专栏  ›  技术社区  ›  Batakj

不定义setter方法就可以在jsp标记库中创建自定义属性吗?

  •  2
  • Batakj  · 技术社区  · 16 年前

    如果业务逻辑保持不变,只要添加标签,我就不想更改Java代码。我可以使用枚举属性集(request.getattributename())访问它。

    例如

    <car:built
     maker="ford" wheel="four" name="endeavor" engine="dohc" power="72bhp"
     tyre="4" interior="mobile-charger,cigratte-lighter, music player"
     />
    

    我不想用逗号分隔内部,而是希望添加以下内容:

    <car:built maker="ford" wheel="four" name="endeavor" engine="dohc" power="72bhp"
    tyre="4" interior-mobile-charger="true" interior-cigratte-lighter="true" 
    interior-music-player-maker="JVC"  interior-music player-bass="true"/>
    

    因此,我可以迭代并检查属性名是否包含“interior”单词,并将其存储在映射中并发送给报表。它还可以帮助我定义新的属性而不改变Java代码。

    有没有办法在jsp标记库中创建自定义属性而不定义setter方法?

    1 回复  |  直到 16 年前
        1
  •  2
  •   Community Mohan Dere    9 年前

    你要找的是所谓的“动态属性”。

    请参见上一个问题,了解如何执行此操作:

    Problem in interpreting dynamic attributes in Jsp

    基本上,你可以

    <dynamic-attributes>true</dynamic-attributes>
    

    .tld 描述符,指示可以将任何旧属性传递给标记。然后,标记类必须实现 DynamicAttributes interface ,未声明的属性将作为映射传入标记:

    使标记声明它接受 动态属性,它必须实现 这个接口。标记的条目 在标记库描述符中必须 也被配置为指示动态 接受属性。

    对于任何未声明的属性 在这个的标记库描述符中 标记,而不是在 翻译时间 setdynamicAttribute()方法是 调用,其名称和值为 属性。这是 用来记住名字和 动态属性的值。

    推荐文章