如何在html:form动作中仅重新加载div内容? Struts 1.3

时间:2013-01-30 15:40:37

标签: java struts reload tiles

我正在使用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)。但这个动作的结果是白页。

您知道如何解决此问题吗?

1 个答案:

答案 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");
        }
    });
}