如何从自定义 jsp 标签中包含另一个 jsp 页面
How to include another jsp page from custom jsp tag
我想要一个带有一个字符串属性的自定义 Jsp 标签,如果这是另一个 jsp 文件的路径,那么我想在页面中包含那个 JSP (表现得像 jsp:include);如果没有,那么我只想在页面正文中输出字符串。
我不知道如何做 jsp:include 部分...
我看到 SimpleTagSupport 中有一个集合JspBody,我可以传递一个 JspFragment...但我不知道如何获得...我希望找到类似于 javax.servlet.jsp 中的 IncludeTag class 之类的东西,我可以将此逻辑委托给它,就像这样
setJspBody( new IncludeTag(...).getJspFragment() )
但我没有找到 class 在 the docs.
中实现 jsp:include 功能的内容
public class MyIncludeTag extends TagSupport {
private String page;
//getters setters
@Override
public int doStartTag() throws JspException {
try {
pageContext.include(page);
} catch (ServletException | IOException e) {
throw new JspException("Failed to include " + page, e);
}
return super.doStartTag();
}
}
我想要一个带有一个字符串属性的自定义 Jsp 标签,如果这是另一个 jsp 文件的路径,那么我想在页面中包含那个 JSP (表现得像 jsp:include);如果没有,那么我只想在页面正文中输出字符串。
我不知道如何做 jsp:include 部分...
我看到 SimpleTagSupport 中有一个集合JspBody,我可以传递一个 JspFragment...但我不知道如何获得...我希望找到类似于 javax.servlet.jsp 中的 IncludeTag class 之类的东西,我可以将此逻辑委托给它,就像这样
setJspBody( new IncludeTag(...).getJspFragment() )
但我没有找到 class 在 the docs.
public class MyIncludeTag extends TagSupport {
private String page;
//getters setters
@Override
public int doStartTag() throws JspException {
try {
pageContext.include(page);
} catch (ServletException | IOException e) {
throw new JspException("Failed to include " + page, e);
}
return super.doStartTag();
}
}