[JAVA] Mémo à obtenir avec Struts2 + Ajax

introduction

Complètement juste une note Je l'utilise lors de la récupération de données sans transition d'écran

environnement

Struts2.0.11.2 (trop vieux ...) Java 8 (ancien ...)

codage

JSP

sample.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<input type="button" value="Envoyer" onClick="getSampleData();" />

jsonArray.jsp


<!--Dois-je recevoir une réponse comme celle-ci ...?-->
<%@ page language="java" contentType="text/javascript; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:property value="jsonArray" escape="false"/>

JavaScript(Ajax)

sample.js


function getSampleData() {
  new Ajax.Request("GetSampleData.action", {
    method : 'GET',
    onSuccess : function(res) {
      var arr = JSON.Parse(res.responseText);
      arr.forEach(function(data){
        console.log(data.id + ":" + data.name);
      }
    },
    onError : function() {
      console.log("Error");
    },
    onComplete : function() {
      console.log("Complete");
    }
  })
}

struts.xml

struts.xml


<action name="GetSampleData" class="PATH.BuildSampleData">
  <result>PATH/jsonArray.jsp</result>
</action>

Action Class

BuildSampleData.java


package hogehoge.fugafuga

import java.util.ArrayList;
import net.sf.json.JSONObject;

public class BuildLoginData {
  private ArrayList<JSONObject> jsonArray = new ArrayList<JSONObject>();

  //Exécuter si la méthode d'action n'est pas spécifiée()Est appelé
  public String execute() throws Exception {
    JSONObject tarou = new JSONObject();	
    tarou.put("id", 1);
    tarou.put("name", "tarou");
    jsonArray.add(tarou);

    JSONObject hanako = new JSONObject();	
    hanako.put("id", 2);
    hanako.put("name", "hanako");
    jsonArray.add(hanako);

    return "success";
  }

  public ArrayList<JSONObject> getJsonArray() {
    return jsonArray;
  }

  public void setJsonArray(ArrayList<JSONObject> jsonArray) {
    this.jsonArray = jsonArray;
  }
}

Impressions

Il est ennuyeux de devoir préparer jsp lors de la réception de la réponse du serveur. Est-ce qu'il y a un autre moyen ...?

Recommended Posts

Mémo à obtenir avec Struts2 + Ajax
Comment démarrer avec Slim
J'ai essayé de démarrer avec Web Assembly
[Note] Comment démarrer avec Rspec
J'ai essayé de gérer la configuration des jambes de force avec Coggle
Les débutants de Rails ont essayé de se lancer avec RSpec
Comment sortir un fichier de ressources avec spring-boot
Étapes de déploiement de Struts 2.5.8
J'ai essayé de démarrer avec Spring Data JPA
Une histoire d'essayer de s'entendre avec Mockito
Présentation de «Introduction à la programmation pratique de la rouille» (jour 3)
Commencez avec Gradle
Comment obtenir JDK etc. depuis Oracle avec CLI
Comment obtenir des valeurs en temps réel avec TextWatcher (Android)
Notes sur la création de Jitsi Meet sur Azure avec docker-compose
Il est maintenant temps de commencer avec l'API Stream
Comment démarrer avec JDBC en utilisant PostgresSQL sur MacOS
[Organisation] À vous qui êtes embrouillé avec le rendu et la redirection vers
Démarrez avec Spring Boot
Mémo d'organisation des rôles dans Struts
reload jCaptcha implémenté avec ajax
Comment numéroter (nombre) avec html.erb
Comment mettre à jour avec activerecord-import
Connectez-vous à DB avec Java
Connectez-vous à MySQL 8 avec Java
Mémo d'étude Java 2 avec Progate
Comment obtenir la valeur de boolean avec jQuery sous forme simple de rails
Comment installer Adopt OpenJDK sur Debian, Ubuntu avec apt (-get)
Que faire si vous vous fâchez contre OpenSSL avec Pyenv Install
[Rails] Que faire si vous ne pouvez pas obtenir de paramètres avec form_with