Liferay - 如何从 @ResourceMapping 注释方法呈现 JSP。通过 AJAX 从 JS 文件调用此方法

Liferay - How to render JSP from @ResourceMapping annotated method. This method is being called from a JS file via AJAX

第一个JSP:调用一个Javascript函数:

<div class="modal-footer">
                        <button type="button" class="btn btn-primary" id="continueTour" onclick="launchTutorial()">Take a Quick Tour</button>
</div>

Javascript 函数:

function launchTutorial(){
    var enjoyhint_instance = new EnjoyHint({});
    var enjoyhint_script_steps = [
        {
            "next #newAuthorizationActive": 'To create an authorization form'
        }
];
    enjoyhint_instance.set(enjoyhint_script_steps);
    enjoyhint_instance.run();

//Here's where i'm accessing the 'exportFile' controller method (shown further below)
    $.ajax({
         type : "POST",
         url : $('#authorizationResourceURL').val(),
         data : {action: "redirectToEmpInfoForAuthTour", tourStatus : 0},
         success : function(data){
             alert('success');
             document.open();
             document.write(data);
             document.close();
         }
     });

控制器中的方法:

@ResourceMapping
        protected void exportFile(ResourceRequest request, ResourceResponse response) throws IOException {  
            String action = ParamUtil.getString(request, "action", "");
    if(action.equals("redirectToEmpInfoForAuthTour"))
            {
                //This is where I want to return the 2nd JSP from
            }

简要说明我在这里寻找的内容:

我有一个 JSP(第一个 JSP),我试图向用户展示 portlet 的教程(使用 enjoyhints)。作为本教程的一部分,我需要突出显示 portlet 的不同页面 (JSPs) 上的元素(select 框、文本字段)。因此,在 Javascript 函数中,我首先突出显示(这个突出显示部分由 enjoyhints 处理)第一个 JSP 的元素(这工作正常),现在我想向用户显示第二个 JSP,并使用 enjoyhints,突出显示第二个 JSP 中的某些元素,以此类推第三个和第四个 JSP。

如果有人有其他方法可以做到这一点,请告诉我。 这里的主要问题是我需要突出显示的元素位于(同一 portlet 的)不同 JSP 页面上。如果所有元素都在同一页上,那就简单了。

我正在使用 Liferay Portal,Spring Portlet MVC 作为我的设计模式。

更新:

您只需将 ResourceMapping 方法的签名更改为 return 字符串即可。

return 值可以是您的视图名称(即 JSP)。

您可以定义资源方法,如下所示,return 类型为 ModelAndView 并在弹出窗口中显示整个 jsp 内容或附加到现有 html。

@ResourceMapping
protected ModelAndView exportFile(ModelMap model,ResourceRequest request, ResourceResponse response){

}