gpt4 book ai didi

java - 扩展 JSP 自定义标签

转载 作者:搜寻专家 更新时间:2023-10-31 20:23:59 25 4
gpt4 key购买 nike

如何扩展现有的 JSP 自定义标记?

如您所知,自定义标签由两部分组成,一个实现类和一个TLD文件。我可以扩展父自定义标签的类,但是如何“扩展”它的 TLD 文件?一个明显的解决方案是剪切并粘贴它,然后添加我的东西,但我想知道是否有更优雅的解决方案,例如在 Apache Tiles 中扩展 tiles 定义的方式。

谢谢。

最佳答案

我认为您不能扩展现有标签,但类似的方法是为两个标签实现类使用公共(public)抽象父类(super class):

// define repetitive stuff in abstract class
public abstract class TextConverterTag extends TagSupport{

private final long serialVersionUID = 1L;
private String text;

public String getText(){
return text;
}

public void setText(final String text){
this.text = text;
}

@Override
public final int doStartTag() throws JspException{
if(text != null){
try{
pageContext.getOut().append(process(text));
} catch(final IOException e){
throw new JspException(e);
}
}
return TagSupport.SKIP_BODY;
}

protected abstract CharSequence process(String input);

}

// implementing class defines core functionality only
public class UpperCaseConverter extends TextConverterTag{
private final long serialVersionUID = 1L;

@Override
protected CharSequence process(final String input){
return input.toUpperCase();
}
}

// implementing class defines core functionality only
public class LowerCaseConverter extends TextConverterTag{
private final long serialVersionUID = 1L;

@Override
protected CharSequence process(final String input){
return input.toLowerCase();
}
}

但恐怕您必须分别配置每个标签类,因为我认为标签库中没有抽象标签定义。

关于java - 扩展 JSP 自定义标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3833997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com