2015-12-17 3 views
0

Je suis conscient que cette question a déjà été posée mais même après avoir lu les réponses des 5 dernières heures, je n'ai toujours pas trouvé ce que je cherchais. J'essaie de lire JSON via jsp en utilisant jstl. J'ai importé le JSON-taglib fichier jar dans WEB-INF/lib, mais je reçoisImpossible de lire le fichier JSON dans jsp

Aucun tag "parse" défini dans la bibliothèque de balises importée avec le préfixe "JSON"] avec la cause racine org.apache. jasper.JasperException: /index-test.jsp (ligne 7, colonne: 0) Aucun tag "parse" défini dans la bibliothèque de balises importées avec le préfixe "JSON"

Ceci est mon code

<%@ page contentType="text/html; charset=utf-8" language="java" %> 
<%@ taglib tagdir="/WEB-INF/tags/layout" prefix="layout" %> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ taglib prefix="json" uri="http://www.atg.com/taglibs/json" %> 

<c:import var="dataJson" url="http://localhost:10081/test.json"/> 
<json:parse json="${dataJson}" var="parsedJSON" /> 
Fetch the name of the node at index 1 : ${parsedJSON.node[1]} 

et c'est l'objet JSON que je lis de

{ 
    "firstName": "Joe" 
    "lastName": "Bloggs" 
} 

L'application fonctionne très bien dans angulaire mais je veux migrer la mise en œuvre de telle sorte qu'il lit côté serveur JSON

S'il vous plaît aider

+0

Où avez-vous trouvé des exemples d'analyse syntaxique JSON? L'atg taglib que je trouve est tout au sujet de la production de JSON. –

+0

http://stackoverflow.com/questions/829643/processing-json-objects-in-jsp –

+1

Je viens de remarquer que Steven, à partir du post ci-dessus a créé son propre taglib et n'a pas utilisé atg. –

Répondre

-1

¿Le port 10081 le même que le serveur Web qui exécute la JSP? Peut-être vous devez activer CORS, en ajoutant des en-têtes HTTP pertinentes au moyen d'un filtre HTTP:

https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

+0

Oui, les ports sont les mêmes –

+0

l'approche que j'ai prise était incorrecte parce que j'ai supposé que Steven d'un lien que j'ai vu cette approche utilisait atg, mais après avoir lu la réponse attentivement, j'ai vu qu'il a créé sa propre balise lib. Une approche possible consiste à convertir l'objet JSON en une ArrayList de HashMaps. Mais ce n'est pas réutilisable. Je veux quelque chose qui soit réutilisable de telle sorte qu'il puisse être implémenté sur n'importe quel objet JSON. –

0

je cela et cela a fonctionné pour moi:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1" import="java.io.*, java.net.*"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>JSP Reading Text File</title> 
</head> 
<body> 
<% 
String fileName = "/WEB-INF/json/test.json"; 
InputStream ins = application.getResourceAsStream(fileName); 
try 
{ 
    if(ins == null) 
    { 
     response.setStatus(response.SC_NOT_FOUND); 
    } 
    else 
    { 
     BufferedReader br = new BufferedReader((new InputStreamReader(ins))); 
     String data; 
     while((data= br.readLine())!= null) 
     { 
      out.println(data+"<br>"); 
     } 
    } 
} 
catch(IOException e) 
{ 
out.println(e.getMessage()); 
} 
%> 
</body> 
</html> 
+0

Vous devez ajouter quelques explications dans votre réponse. –