Как получить доступ к jsp-файлам в отдельной папке в / WEB-INF / в проекте Spring MVC с помощью вызовов javascript / ajax? - PullRequest
0 голосов
/ 21 мая 2018

Моя структура проекта такова:

enter image description here

Тело моей страницы входа в систему выглядит следующим образом

<body>
<P id="errors"></P>
<p>Login Details</p>
   <div id = "page"></div>

    <table>
        <tr>
            <td> Login ID :</td>
            <td><input type="number" id="loginid" min="1" max="200" style="width:169px;"/></td>
        </tr>
        <tr>
            <td> Passowrd :</td>
            <td><input type="password" id="password"/></td>
        <tr>

    </table>
    <button id="loginB" onclick="login()">submit</button>
</body>

После успешного входа в системуЯ хотел бы перейти от loginPage.jsp к home.jsp, используя JavaScript или Ajax.Мой код:

function login()
{

var name = document.getElementById("loginid").value;
var password = document.getElementById("password").value;
var url="/loginPage?name="+name+"&password="+password;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
     var responsetext=xhttp.responseText;
     var parsedresult=JSON.parse(responsetext);
     if(parsedresult.success==true)
         {
         window.location="home.jsp";
         }
     else
         {
         document.getElementById("errors").innerHTML=parsedresult.message;
         }
         }

  };      

  xhttp.open("POST",url,true);
  xhttp.send();
}

Он не переходит на home.jsp и выдает ошибку 404.Как настроить его для перехода на home.jsp?

Мой логин API заключается в следующем.LoginModel имеет жестко закодированные имя пользователя и пароль, которые используются для проверки.Loginmodel.validate () вернет строку «false», если учетные данные неверны.

    @Controller
public class LoginController {

    LoginModel loginmodel = new LoginModel();
     @RequestMapping(value="/")
      public ModelAndView redirect(HttpServletRequest request, HttpServletResponse response) throws IOException
      {
          return new ModelAndView("loginPage");
      }

     @RequestMapping(value="/loginPage",method=RequestMethod.POST)
     public void login(HttpServletRequest request, HttpServletResponse response)
              throws IOException {

         String sessionName = loginmodel.validate(request.getParameter("name"), request.getParameter("password"));
         if(!sessionName.equals("false"))
         {
             HttpSession session = request.getSession();
             session.setAttribute("name", sessionName);
             JSONObject result= new JSONObject();
             result.put("success", true);            
             response.setContentType("application/json");
             response.getWriter().print(result);
         }
         else
         {    JSONObject result= new JSONObject();
              result.put("success", false);
              result.put("message", "invalid credentials");
             response.setContentType("application/json");
             response.getWriter().print(result);
         }

     }
     @RequestMapping(value="/logout")
     public String logout(HttpServletRequest request, HttpServletResponse response) throws IOException
      {  
          request.getSession().invalidate();
          return "loginPage";
      }

}

1 Ответ

0 голосов
/ 21 мая 2018

Пожалуйста, напишите один метод в контроллере, который возвращает страницу home.jsp, как показано ниже:

@RequestMapping(value="/home")
public String logout(HttpServletRequest request, HttpServletResponse response) throws IOException
{
    return "home";
}

И затем со своей страницы jsp:

window.location = " contextPath / дом ";

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...