我从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>
答案 0 :(得分:0)
错误消息不会在它获取的模式中首次运行时显示 当我再次单击登录按钮打开此模式时显示。
因为在第一次运行时,未设置errorMessage变量。只有在您提交表单后,errorMessage变量才为空。
如果你想在第一次运行时查看errorMessage,那么你需要在之前设置它访问home.jsp