2017-10-09 2 views
0

Ich arbeite derzeit an einem MVC-Programm, wo ich die home.jsp Seite aufrufen muss, wenn der Benutzer von der login.jsp anmeldet. Ich habe den Code für die Login- und Home-Controller geschrieben, die die Ansichten rendern. Aber ich bin mir nicht sicher, wie ich die Anforderung der Controller durch meine JavaScript-Datei custom.js aufrufen soll, die ich unter meinen Ressourcen habe.Rufen Sie eine JSP-Seite über Javascript auf Schaltfläche klicken

custom.js

document.getElementById('login_btn').addEventListener("click", function() { 
    authorizationCheck(); 
}, false); 


function authorizationCheck() 
{ 
    var username = document.getElementById('username_txt').value; 
    var password = document.getElementById('password_txt').value; 

    if(username == "admin" && password == "123") 
    { 
     //code to load the home.jsp 
    } 
} 

HomeController.java

@Controller 
public class HomeController { 

    private static final Logger logger = LoggerFactory.getLogger(HomeController.class); 

    /** 
    * Simply selects the home view to render by returning its name. 
    */ 

    @RequestMapping(value = "/", method = RequestMethod.GET) 
    public String login(Locale locale, Model model) { 
     return "login"; 
    } 

    @RequestMapping(value = "/home", method = RequestMethod.GET) 
    public String home(Locale locale, Model model) { 
     logger.info("Welcome home! The client locale is {}.", locale); 

     return "home"; 
    } 
} 

Ich bin ganz neu in diesem Rahmen. So werden alle Vorschläge, wie man ein anderes jsp auf Knopfdruck laden kann, sehr geschätzt.

+0

ein HTML-Formular erstellen und Ihre Form in dem Verfahren authorizationCheck einreichen. –

+0

Sie können 'window.location =" home.jsp "' in Ihrem JS-Code verwenden, um auf eine andere Seite umzuleiten. – Korashen

+0

Code, um das Formular abzuschicken als document.getElementById so einfach sein ("myForm") submit(). –

Antwort

0

Ihre Form als (Teil der JSP) könnte so einfach sein

<form id="myForm" method="post" action="http://localhost/your_app_root/check_credentials.jsp"> 
<input id="username-txt" name = "username" type="text" value="some_username"> 
<input id="password-txt" name = "password" type="text" value="some_password"> 
<input type="submit" value="Log in"> 
</form> 

In JS

function authorizationCheck() 
    { 
    //do some processing if necessary (you can encrypt username/psw but this is only slightly more secure)  
    document.getElementById("myForm").submit(); 
    } 

In Ihrem Controller (ist es Frühling) Sie den Benutzernamen und das Passwort als @RequestParam Parameter abgerufen werden. In der einfachen JSP (JSP/Servlet) würden Sie request.getParameter("username") bzw. request.getParameter("password") verwenden.

+0

Danke. Das funktioniert, wenn ich es zu einem 'Get' anstatt zu einem' Post' modifiziere. –

+0

Warum akzeptierst du die Antwort dann nicht? –

+0

Fertig. Vielen Dank. –

0
diese

verwenden, ist es navigiert Controller zu springen und die gewünschte Seite

if(username == "admin" && password == "123") 
{ 
    document.location.href = "/home"; 
} 
+0

Ruft dies die Methode des Controllers auf oder ruft sie direkt die Ansicht vom Javascript auf? –

+0

ja, es wird die Aktion an den Server senden direkt –

+0

Ich habe versucht, diese aber es scheint nicht für mich arbeiten zu –

Verwandte Themen