JournalArticleSearchResultProcessor.java 文件源码

java
阅读 20 收藏 0 点赞 0 评论 0

项目:flashlight-search 作者:
/**
 * Gets the search result's view URL
 *
 * @param document The searched document
 * @param request The request
 * @param response The response
 * @param currentLayout The current page
 * @param tabId The search tab ID
 *
 * @return The search result URL
 */
private String getAssetViewURL(Document document, PortletRequest request, PortletResponse response, Layout currentLayout, String tabId, String keywords) {
    String className = document.get(Field.ENTRY_CLASS_NAME);
    long classPK = GetterUtil.getLong(document.get(Field.ENTRY_CLASS_PK));
    String currentUrl = this.portal.getCurrentURL(request);
    String returnedUrl;

    if(ASSET_TYPE.equals(className) && classPK > 0) {
        try {
            String portletId = (String) request.getAttribute(WebKeys.PORTLET_ID);
            PortletURL viewInPortletUrlObj = this.portletUrlFactory.create(request, portletId, currentLayout, LIFECYCLE_RENDER);
            viewInPortletUrlObj.setParameter(PortletRequestParameter.VIEW_MODE.getName(), ViewMode.VIEW_JOURNAL.getParamValue());
            viewInPortletUrlObj.setParameter(Field.ENTRY_CLASS_PK, Long.toString(classPK));
            viewInPortletUrlObj.setParameter(PortletRequestParameter.TAB_ID.getName(), tabId);
            viewInPortletUrlObj.setParameter(PortletRequestParameter.KEYWORDS.getName(), keywords);
            String viewInPortletUrl = viewInPortletUrlObj.toString();

            AssetRendererFactory<?> assetRendererFactory = AssetRendererFactoryRegistryUtil.getAssetRendererFactoryByClassName(className);
            AssetRenderer<?> assetRenderer = assetRendererFactory.getAssetRenderer(classPK);
            returnedUrl = assetRenderer.getURLViewInContext((LiferayPortletRequest) request, (LiferayPortletResponse) response, viewInPortletUrl);
        } catch(Exception e) {
            returnedUrl = currentUrl;
        }
    } else {
        returnedUrl = currentUrl;
    }

    return returnedUrl;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号