2017-09-08 5 views
0

서블릿의 seminatic UI 모달 로그인 양식 (home.jsp)에서 사용자 이름과 비밀번호를 가져옵니다. 서블릿은 자격 증명을 확인하고 결과를 home.jsp에 반환합니다. 오류는 동일한 모달로 표시되어야합니다. 이 모달을 여는 로그인 버튼을 다시 클릭하면 표시되는 모달에서 오류 메시지가 처음 실행시 표시되지 않습니다. 첫 번째 실행시이 오류 메시지를 원합니다. 이를 달성하는 방법을 제안하십시오. 아래는 완전한 코드입니다.모달에 로그인 오류 메시지를 표시 할 수 없습니다.

FileBug.java (서블릿)

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 

     Bugzilla bugzilla=Bugzilla.getBugzillaInstance("username", "pass"); 
    try { 
      //some code 
    }catch(Exception e) 
    { 
     request.setAttribute("errorMessage",e.getMessage()); 
      RequestDispatcher dispatcher = request.getRequestDispatcher("/home.jsp"); 
      dispatcher.forward(request, response); 
    } 
    } 

home.jsp

<a class="item agenda-item" id="test"> 
    <span class="side-agenda-item"> <i class="bug icon"></i> File a Bug</span> 
    <div class="ui modal test"> 
     <form action="FileBug" method="post"> 
     <div class="ui segments"> 
     <br> 
      <h3 align="center" class="header">Bugzilla Login</h3> 
      <div class="ui container"> 
      <c:if test="${not empty errorMessage}"> 
      <c:out value="${errorMessage}"/> 
      </c:if> 
      </div> 
     <div class="ui segment"> 

     <div class="ui input"> 
     <input type="text" name="username" placeholder="Bugzilla Username" required> 
     </div> 
     </div> 
     <div class="ui segment"> 
     <div class="ui input"> 
     <input type="password" name="password" placeholder="Bugzilla Password" required> 
     </div> 
     </div> 

     <div class="ui segment"> 
     <br> 
     <button class="ui blue button" id="login">Login</button> 
     <br><br> 
     </div> 
     </div> 
     </form> 
    </div> 
    </a> 

스크립트 -

<script> 
    $(function(){ 
     $("#test").click(function(){ 
     $(".test").modal('show'); 
     }); 
     $(".test").modal({ 
     closable: true 
     }); 
    }); 
     </script> 
     <style> 
     div.ui.modal{ 
      width: 20%; 
      top: 45%; 
     left: 75%; 
     } 
      div.ui.input { 
     width: 100%; 

     } 
    button#login{ 
     margin: -20px -50px; 
     position:relative; 
     top:50%; 
     left:53%; 

     } 
     div.ui.input input { 
      display: block; 
      margin: 0 auto !important; 
      float: none; 
     } 
      </style> 

답변

0

오류 메시지가의 첫 번째 실행에 표시되지 않습니다 모달에서 다시 lo를 클릭하면 이 표시됩니다. 이 모달을 여는 진 버튼.

첫 번째 실행에서 errorMessage 변수가 설정되지 않았기 때문에. 양식을 제출 한 후에 만 ​​errorMessage 변수가 비어 있지 않습니다. 첫 번째 실행에 ERRORMESSAGE을 보려는 경우

는, 당신은

+0

을 home.jsp 접근 전에 그것을 을 설정해야하지만, 즉 후 제출 난 단지 사용자가 제공 한 사용자 이름과 암호를 검증 한 후 오류 메시지를 표시해야 그러면 home.jsp에 액세스하기 전에 어떻게 설정해야합니까? 수정해야 할 코드 부분을 설명해주십시오. –

+0

예 ... 따라서 양식에서 양식을 삭제하십시오. 사용자가 양식을 제출하면 세부 사항을 서블릿으로 보낸 다음 요청 변수를 다시 home.jsp로 전달합니다. doPost를 doGet으로 변경 한 다음 url에 간단히 입력 할 수도 있습니다./FileBug –