Hier ist die JSP aus, wo meine Javascript-Funktion aufgerufen wird: JSP-CodeKann nicht Liferay (Frühjahr Portlet MVC) -Controller von JS erhalten, indem Sie folgendermaßen vorgehen:
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="continueTour" onclick="showTutorial()">Take a Quick Tour</button>
<a href="javascript:disableTutorial();" id="skipTour" class="textanchor" style="padding-left:30px;">Skip Tour</a>
</div>
Hier ist die Funktion Javascript Von dort muss ich eine andere JSP rendern und muss daher auf die Render-Methode im Controller zugreifen. Beachten Sie die ‚Simulieren‘ Methode, die ich rufe das Klicken des Hyperlinks zu simulieren (nicht sicher, ob dies richtig ist oder nicht!): Javascript-Code showTutorial() -Methode:
function showTutorial(){
launchTutorial();
}
function launchTutorial(){
var enjoyhint_instance = new EnjoyHint({
onEnd: function(){
AUI().use('liferay-portlet-url', function(A) {
var plid = Liferay.ThemeDisplay.getPlid();
var url=Liferay.PortletURL.createRenderURL();
/*url.setPortletId(plid);*/
url.setPortletName(Liferay.ThemeDisplay.getp)
url.setParameter('render','redirectToEmpInfo');
alert(url);
A.one(document.createElement('a')).attr('href',url).simulate('click');
});
}
});
var enjoyhint_script_steps = [
{
"next #newAuthorizationActive": 'To create an authorization form'
}
];
enjoyhint_instance.set(enjoyhint_script_steps);
enjoyhint_instance.run();
}
Hier ist die Controller-Methode, die ich geschrieben habe, um die Render-Anfrage aus dem Javascript abzufangen. Controller-Methode (nicht auf dieses Verfahren bekommen)
@RenderMapping(params = "render=redirectToEmpInfo")
protected ModelAndView redirectToEmpInfoForAuthTour(ModelMap map, RenderRequest renderRequest, RenderResponse response) {
LiferayPortal.logInfo(_log, "Inside the render method for Emp Info");
return null;
/*return new ModelAndView("emailsuccess", map);*/
}