猿树洞 2016-04-22 08:38 采纳率: 100%
浏览 1421

Struts2 ajax问题 新手求教

实践了一下书上的 Ajax实例 没有得到应有的效果
index.jsp页面 得到name password的值

用XMLHttpRequest对象和Action交互
理论效果应该是页面的一部分进行更新 然而结果却返回了success页面

主要代码如下:
分别是 页面 拦截器 和Action的代码

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
    <title>Insert title here</title>
    <sx:head/>
    <script type="text/javascript">
        var XHR = false;
        function CreateXHR() {
            try {
                XHR = new ActiveXObject("msxml2.XMLHTTP");
            } catch (e1) {
                try {
                    XHR = new ActiveXObject("microsoft.XMLHTTP");
                } catch (e2) {
                    try {
                        XHR = new XMLHttpRequest();
                    } catch (e3) {
                        XHR = false;
                    }
                }
            }
        }

        function sendRequest() {
            CreateXHR();
            if (XHR) {
                var name = document.getElementById("name").value;
                var password = document.getElementById("password").value;
                var uri = "http://localhost:8080/StrutsDemo/login.action?name=" + name + "&password=" + password;
                XHR.open("GET", uri, true);
                alert(1);
                XHR.onreadystatechange = resultHander;
                alert(2);
                XHR.send(null);
                alert(3);
            }
        }
        function resultHander() {
            if (XHR.readyState == 4 && XHR.status == 200) {
                alert(4);
                alert(XHR.responseText);
                alert(5);
            }
        }
    </script>
</head>
<body>
<center>
    Name:<input type="text" id="name"/><br/>
    password:<input type="password" id="password"/><br/>
    <input type="button" value="ok" onclick="sendRequest();"/>
</center>
</body>
</html>
 <?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
        "http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>
    <package name="Struts_AJAX_DEMO" namespace="/" extends="struts-default">
        <action name="login" class="com.action.LoginAction">
            <result>/success.jsp</result>
        </action>
    </package>
</struts>
 package com.action;
import javax.servlet.http.HttpServletResponse;
import javax.swing.plaf.basic.BasicInternalFrameTitlePane.SystemMenuBar;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
    private static final long serialVersionUID = 1L;
    private String name;
    private String password;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String execute() throws Exception{
        HttpServletResponse response = ServletActionContext.getResponse();
        response.setContentType("text/xml;charset=UTF-8");
        response.setHeader("Cache-Control","no-cache");
        response.getWriter().println("success");

        if(name.equals("tom")&&password.equals("123"))
        {
            response.getWriter().println("welcome login!");
        }else{
            response.getWriter().println("error,palease input again!");
        }
        return SUCCESS;
    }
}

  • 写回答

1条回答

  • javaiswhat 2016-04-22 08:59
    关注

    你这个是请求没有跳转呀,返回的success是 Action类pring出来的

    评论

报告相同问题?

悬赏问题

  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?