0

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

你知道如何解决这个问题吗?

4

1 回答 1

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

于 2013-01-30T15:55:03.760 回答