要求如下,
当发布新的 Web 内容(对应于特定结构,例如 A)时,它应该在 Asset Publisher portlet 上自动更新(Asset Publisher 的默认功能)。
默认情况下,Web 内容的标题是在 Asset Publisher 上显示为不同 Web 内容的链接。而不是这个,我希望结构 A 的元素(比如名称)的内容显示为链接。单击此链接应打开一个包含相应 Web 内容的Alloy UI 弹出窗口。
为此,我使用钩子创建了一个新的“显示样式” jsp(调整了abstracts.jsp)。
在以下位置编写了此脚本.jsp
:
<%
String personName=null;
JournalArticle journalArticle=null;
String myContent=null;
Document document = null;
Node node=null;
Node node1=null;
Node node2=null;
Node node3=null;
int noOfWords=0;
String pic=null;
String aboutMe=null;
double version=0;
try {
version=JournalArticleLocalServiceUtil.getLatestVersion(assetRenderer.getGroupId(), "14405");
journalArticle = JournalArticleLocalServiceUtil.getArticle(assetRenderer.getGroupId() , "14405",version);
myContent = journalArticle.getContent();
document = SAXReaderUtil.read(new StringReader(myContent));
node = document.selectSingleNode("/root/dynamic-element[@name='personName']/dynamic-content");
if (node.getText().length() > 0) {
personName = node.getText();
}
node1 = document.selectSingleNode("/root/dynamic-element[@name='pic']/dynamic-content");
if (node1.getText().length() > 0) {
pic = node1.getText();
}
node2 = document.selectSingleNode("/root/dynamic-element[@name='noOfWords']/dynamic-content");
if (node2.getText().length() > 0) {
noOfWords = Integer.parseInt(node2.getText());
}
node3 = document.selectSingleNode("/root/dynamic-element[@name='aboutMe']/dynamic-content");
if (node3.getText().length() > 0) {
aboutMe = node3.getText(). substring(0,noOfWords)+"....";
}
} catch (PortalException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
%>
但是这里articleId
需要硬编码。
我想在articleId
发布新的网络内容时获取这里,即动态发布。
这里应该使用哪个 API?
任何帮助表示赞赏。
谢谢。