我正在使用Struts 1.3.10,Tiles和Hibernate开发一个Web应用程序。
登录表单位于正文块内,我需要在提交登录按钮时仅重新加载正文内容。 这是形式:
login.jsp
<div class="login">
<h2>Login</h2>
<html:form action="/loginAction" >
<div><p>User</p> <html:text property="userName" /></div>
<div><p>Password</p> <html:password property="password" /></div>
<div><html:submit value="Login"/></div>
</html:form>
</div>
这是loginAction:
loginAction.java
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
loginForm lForm = (loginForm) form;
String userName = lForm.getUserName();
String password = lForm.getPassword();
Boolean ack = Login.checkCredentials(userName, password);
if(ack){
HttpSession session = request.getSession();
session.setAttribute("SessionLogin", "true");
}else{
}
return null;
}
我正在尝试返回null,因为我不需要转发到另一个页面,我只想重新加载div内容(通过javascript)。但这个动作的结果是白页。
您知道如何解决此问题吗?
答案 0 :(得分:0)
使用以下代码调用将提交ajax请求的javascript方法。
<html:button onclick="javascript:callMyMethodToSubmitAjax()" value="Submit"/>
javascript看起来像下面的内容
<script type="text/javascript">
function callMyMethodToSubmitAjax() {
var $form = $('#strutsFormHtmlId'); // set your form ID
$.ajax({
type: 'POST',
url: $form.attr('action'),
data: $form.serialize(),
success: function (msg) {
alert("success");
},
error: function (msg) {
alert("error");
}
});
}