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;
}
}