如何将json数据从ajax传输到struts动作

时间:2016-11-27 18:50:43

标签: java jquery json ajax struts2

我正在开发一款应用游戏,其中第一个玩家(pseudo1)必须等待第二个玩家(pseudo2)。 为此,我使用ajax post发送数据以验证第二个用户是否为null。如果第二个玩家没有加入游戏,我使用带有jquery的加载gif,现在我试图从动作类中获取JSON响应并显示响应的警报但是警报没有。这两种情况都有效。有谁可以帮助我吗 ?他可以让我的一周。对不起,我的英文不好

我的jsp:

<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
<%@ taglib prefix="S" uri="/struts-tags" %>
<%--

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <sj:head jqueryui="true" jquerytheme="start" />
</head>
<body>

Partie en attente du deuxièmeJoueur


<s:set var="pseudo" value="#session.pseudo"/>
<div id="pseudo"><s:property value="#session.pseudo"/></div>


<div id="message"></div>
<script>

      $("#message").ready(function () {
          $("#message").html('<img src="/img/397060.gif">');
      });
     var data = $("#pseudo");

     setInterval(Requete, 1000);
      function Requete() {
          jQuery.ajax({
              url: 'ajaxCheckDeuxiemeJoueur?pseudo='+ $("#pseudo").val(),
              type: "POST",
              global: false,
              datatype: 'json',
              success: function (response) {
               alert(response);
                if (response.trim()==''){
                    alert("if");
                }
                else {
                 $("#message").html(response).$("#pseudo2").prop('outerHTML');
                    alert("else");
              }


          }});
      }


</script>
</body>
</html>

我的struts.xml:

  <package name="dddd" namespace="/" extends="json-default">
        <action name="ajaxCheckDeuxiemeJoueur" class="actions.Ajax.AjaxCheckDeuxiemeJoueur">
            <result name="success" type="json">
            </result>

        </action>

    </package>

我的动作类:

   package actions.Ajax;

import com.opensymphony.xwork2.ActionSupport;
import facade.GestionStratego;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.SessionAware;

import java.util.Map;

public class AjaxCheckDeuxiemeJoueur extends ActionSupport implements ApplicationAware, SessionAware{

    private Map<String, Object> applicationMap;

    private Map<String, Object> sessionMap;

    public String getPseudo() {
        return pseudo;
    }

    public void setPseudo(String pseudo) {
        this.pseudo = pseudo;
    }

    private String pseudo;


    public String getPseudo2() {
        return pseudo2;
    }

    public void setPseudo2(String pseudo2) {
        this.pseudo2 = pseudo2;
    }

    private String pseudo2;

    public Map<String, Object> getApplicationMap() {
        return applicationMap;
    }

    public Map<String, Object> getSessionMap() {
        return sessionMap;
    }


    public final String execute() {
       GestionStratego facade = (GestionStratego)this.applicationMap.get("facade");
       this.setPseudo2(facade.getJoueur(pseudo).getPartie().getJoueur2().getPseudo());

        return SUCCESS;
    }

    public void setApplication(Map<String, Object> map) {
            this.applicationMap = map;
    }

    public void setSession(Map<String, Object> map) {
        this.sessionMap = map;
    }

}

0 个答案:

没有答案