2017-12-21 14 views
-1

현재 Struts2/jsp를 사용하여 게임을 개발하는 학교 프로젝트에 참여하고 있습니다. 문제는 jQuery를 사용하여 내 ActionClass에서 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

코드에서 실수를 발견했습니다. 그것은 당신에게 도움이 될 수 있습니다.

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

대신

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

여기 형 json 너무 변수

전달 될 struts.xml 에서.

playerColor에는 GameAction에 게터 방법이 있어야합니다. Ajax 호출에

단순히

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

이미 playerColor에 대한 getter/setter가 있으며 type = "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> 

에 아무 말도하지 않습니다

당신은 튜토리얼이 결과를 사용하는 방법을 예제로 발굴 할 필요가있다. 그들 중 하나는 here입니다.

또 다른 link은 json 결과가 필요한지 아니면 JSON 응답에 적합한 다른 결과를 사용할지 결정하는 데 도움이 될 수 있습니다.

모두 함께 사용하면 코드를 다시 작성하여 작동시킬 수 있습니다.

+0

아무도 나에게 도움을주지 못했다. 고전적인 get 대신에 .getJSON을 사용하여이 mysefl을 해결했다. $ .ajax를 사용하여 요청하십시오. 그러나 고맙습니다. –

+0

'getJson'은 기본값으로 속성을 설정 한 아약스와 같습니다. –