2017-10-09 1 views
0

현재 사용자가 login.jsp에서 로그인 할 때 home.jsp 페이지로 호출해야하는 MVC 프로그램에서 작업하고 있습니다. 보기를 렌더링하는 로그인 및 홈 컨트롤러에 대한 코드를 작성했습니다. 하지만 내 리소스 아래에있는 내 custom.js 자바 스크립트 파일을 통해 컨트롤러의 요청 매핑을 호출하는 방법을 잘 모르겠습니다.버튼을 클릭하면 자바 스크립트를 통해 JSP 페이지 호출

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"; 
    } 
} 

나는이 프레임 워크에 아주 새로운 오전. 따라서 버튼 클릭시 다른 JSP를로드하는 방법에 대한 제안은 매우 높이 평가 될 것입니다.

+0

html 양식을 작성하고 authorizationCheck 메소드에서 양식을 제출하십시오. –

+0

JS 코드에서'window.location = "home.jsp"'를 사용하여 다른 페이지로 리디렉션 할 수 있습니다. – Korashen

+0

양식을 제출하는 코드는 document.getElementById ("myForm")처럼 간단 할 수 있습니다. –

답변

0

양식은 (JSP의 일부)

것처럼 간단 할 수있다 컨트롤러에서
function authorizationCheck() 
    { 
    //do some processing if necessary (you can encrypt username/psw but this is only slightly more secure)  
    document.getElementById("myForm").submit(); 
    } 

JS

에서
<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> 

(그것은 봄이다) 당신은 @RequestParam 매개 변수로 사용자 이름과 암호를 검색합니다.

일반 JSP (JSP/서블릿)에서는 request.getParameter("username")request.getParameter("password")을 각각 사용합니다.

+0

감사합니다. 이것은'post' 대신에'get'으로 수정했을 때 작동합니다. –

+0

왜 그 대답을 받아들이지 않습니까? –

+0

완료. 감사. –

0

사용이, 그것은 컨트롤러를 봄으로 이동하여 원하는 페이지

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

이 컨트롤러의 메서드를 호출하거나 자바 스크립트에서 직접 뷰를 호출합니까? –

+0

예, 서버에 직접 작업을 보냅니다. –

+0

시도해 보았지만 제대로 작동하지 않는 것 같습니다. –

관련 문제