无法在模态

时间:2017-09-08 19:09:56

标签: java jsp servlets semantic-ui

我从servlet中的semnatic ui模式登录表单(home.jsp)获取用户名和密码。 Servlet将验证凭据并将结果返回到home.jsp,错误应显示在同一模态中。当我再次单击登录按钮打开此模式时,错误消息不会显示在它显示的模态中的第一次运行中。我想在第一次运行时出现此错误消息。请建议如何实现这一目标。以下是完整的代码。

FileBug.java(Servlet)

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>

1 个答案:

答案 0 :(得分:0)

  

错误消息不会在它获取的模式中首次运行时显示   当我再次单击登录按钮打开此模式时显示。

因为在第一次运行时,未设置errorMessage变量。只有在您提交表单后,errorMessage变量才为空。

如果你想在第一次运行时查看errorMessage,那么你需要在之前设置它访问home.jsp