2017-12-21 13 views
-1

私は現在、Struts2/jspを使ってゲームを開発する学校プロジェクトに取り組んでいます。 問題は、私のActionClassからjQueryを使ってJSPにデータを取得できないということです。 それは他の方法で素晴らしい動作し、私はそうするために複数のソースが見つかりました。ActionClassからjsp Struts2へデータを取得

は、ここに私の最小化 "GameAction.class" です:

private String playerColor; 
private Map<String,Object> applicationMap; 

public String execute(){ 

playerColor = ((Joueur)applicationMap.get("joueur")).getPlayerColor(); 
    return SUCCESS; 
} 

注:すべてはゲッター/セッターを持っています。

game.js:

var $playerColor; 
$(window).on('load', function() { 

$.ajax({ 
    type : "GET", 
    url : "gotoGameAction", 
    data : "playerColor=", 
    success : function (data) { 
    $playerColor = data; 
    var html = "<h2>" + $playerColor.toString() + "</h2>"; 
    $("#playerColor").html(html); 
    } 

}) 

}); 

Struts.xml:

<package name="default" extends="json-default" namespace="/"> 
    <action name="gotoGameAction" class="actions.logins.GameAction"> 
     <result name="success" type="json">/WEB-INF/views/game.jsp</result> 
    </action> 
</package> 

私は私のJSPに持っているこの出力は次のとおりです。[対象オブジェクト]。

本当に何が起こっているのか分からない人がいますか? ありがとうございました!

答えて

0

コードに間違いがあります。あなたに役立つかもしれません。通過されるように可変struts.xml

その

<result name="success" type="json">playerColor</result> 

代わり

<result name="success" type="json">/WEB-INF/views/game.jsp</result> 

ここタイプjson

playerColorは、ゲッター法をGameActionに設定する必要があります。

Ajax呼び出しで

単に

success : function (data) { 
    $("#playerColor").html("<h2>" + data + "</h2>"); 
} 
+0

私はすでにplayerColor用のゲッター/セッターを持っていて、すでにタイプ= "json"を持っています。 私はhtmlでplayerColorの代わりにデータを入れましたが、同じ問題でもあります。 –

+0

'struts.xml'の' result'タグはどうですか? @AymaneELJahrani – Satya

+0

私のリンクの代わりにplayerColorを入れようとしました:動かなかった –

0

あなたはJSONの結果の型とどのようにコンテンツがこの結果タイプを実行しているアクションによって提供されているかを理解しない場合があります。

プラグインとドキュメントの詳細については、JSON Pluginを参照してください。

JSONResultが実行されているクラスのソースコードを見ることもできます。そして、あなたは、コードをデバッグしている場合は、そのようなノイズが時々便利ですしかし

/** 
* This result type doesn't have a default param, null is ok to reduce noise in logs 
*/ 
public static final String DEFAULT_PARAM = null; 

ことがわかります。あなたのコード

<result name="success" type="json">/WEB-INF/views/game.jsp</result> 

ザ・ノーどんな意味がありません

あなたはチュートリアルと、この結果を使用する方法を例に掘るする必要があります。そのうちの1つはhereです。

もう1つのlinkは、JSON結果を必要とするか、JSON応答に適した他の結果を使用するかを決定するのに役立ちます。

これらをまとめて組み合わせることで、コードを書き直して機能させることができます。

+0

私はこの古典的getの代わりに$ .getJSONを使ってこのmyseflを解決しました$ .ajaxを使用してリクエストしてください。しかし、ありがとう:) –

+0

'getJson'はデフォルト値でプロパティを設定したajaxのようです。 –

関連する問題