我正在使用http://www.cqblueprints.com/xwiki/bin/view/Blue+Prints/Writing+A+JSP+Custom+Tag+Library创建一个自定义标签库,以从我的自定义组件中生成防 XSS 链接。我已经把它放到了一个标签上,因为我需要做一些其他的工作并避免在 JSP 文件上编写脚本(我在最后发布了代码)。
我想使用我的 Java 类中的 XSSAPI,但是查看XSSAPI 的 javadoc我发现它是一个接口;在 JSP 文件中使用它时,它是一个初始化调用的对象<cq:defineObjects/>
。
有人对如何做到这一点有任何想法吗?XSSAPI 类中有一个方法被调用getRequestSpecificAPI(slingRequest)
,但它不是静态的,我现在已经没有想法了。
@JspTag
public class FixInternalLinkTag extends CqSimpleTagSupport {
private String pathToPage;
@Override
public void doTag() throws JspException, IOException {
XSSAPI xssAPI; // ToDo how to get a reference to this?
urlPointingToPage = xssAPI.getValidHref(urlPointingToPage);
getJspWriter().write(urlPointingToPage);
}
public String getPathToPage() {
return pathToPage;
}
@JspTagAttribute(required = true, rtexprvalue = true)
public void setPathToPage(String pathToPage) {
this.pathToPage = pathToPage;
}
}