javaコードではなく、jspページのjson出力からユーザーの詳細を抽出するにはどうすればよいですか?
${users.user.firstname} などが機能しません。
コードは正常に機能しています。問題は、json リストを抽出できないことです。
@RequestMapping(value = "asjson", method = RequestMethod.GET)
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public String getAsJson(ModelMap model)
{
Client client = Client.create();
WebResource service = client.resource(getBaseURI());
String userAsJson = service.path("user/").path("getall").accept(MediaType.APPLICATION_JSON).get(String.class);
model.addAttribute("json", userAsJson);
return "asjson";
}
private static URI getBaseURI()
{
return UriBuilder.fromUri("http://localhost:8080/xxxxxxx/").build();
}
そして、jsp ページでは、El タグを使用して foreach ループでユーザーの詳細を出力し、次のようにします。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4 /loose.dtd">
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<body>
<c:forEach var="users" items="${json}">
${users}
</c:forEach>
リストの一部は次のとおりです。
{
"user": [
{
"userid": "1",
"firstname": "xxxxx",
"lastname": "xxxxxxx",
"username": "xxxxxx",
"password": "xxxxxx",
"email": "xxxxxxx",
"isEnabled": "true",
"address": {
"street": "xxxxxxxxx",
"zipcode": "xxxxxxx",
"city": "xxxxxxx"
},
"roles": [
{
"roleid": "1",
"rolename": "ROLE_ADMIN"
},
{
"roleid": "2",
"rolename": "ROLE_USER"
}
]
},
{
"userid": "2",
"firstname": "jesica",
"lastname": "biel",
"username": "jesica",
"password": "biel",
"email": "jesica@sex.se",
"isEnabled": "true",
"address": {
"street": "sexstreet",
"zipcode": "66666",
"city": "sexistan"
},
"roles": {
"roleid": "5",
"rolename": "ROLE_USER"
}
}
]
}
ありがとう