почти не знаком с Spring Boot и никогда не использовал Thymeleaf, поэтому у меня возникла пара проблем, я работаю поверх уже созданного (Источник: https://github.com/springframeworkguru) приложения из-за временных ограничений так как я должен быстро выполнить школьный проект. Я пытаюсь получить местоположение от пользователя, а затем сделать вызов API качества воздуха и получить свойства воздуха этого указанного c местоположения.
В данный момент я создаю Loader, который создает экземпляр местоположения, чтобы я мог проверить, работают ли мои модели и сервисы.
Мой индекс. html
<div class="container">
<!--/*/ <th:block th:include="fragments/header :: header"></th:block> /*/-->
<div class="container" style="margin-top: 85px; margin-bottom: 20px; background: #f2f2f2;border-radius: 20px; padding: 1.5%;">
<h1>Air Quality</h1>
<h5>Check the air quality of a selected location</h5>
<form style="margin-top: 30px;" th:action="@{/location}" method="post"> <!-- th:object="${location}" ??? -->
<div class="form-group">
<label>Location</label>
<input type="text" class="form-control" id="location" placeholder="Enter location"> <!-- th:field="*{location.name}" -->
</div>
<button type="submit" class="btn btn-primary">Get Air quality info</button>
</form>
</div>
</div>
Это веб-страница, на которой я собираюсь иметь качество воздуха указанного местоположения c, но, поскольку я загрузил его с большим количеством данных, я решил перечислить все из них (в настоящее время источник, созданный на входе, не отображается)
<div class="container">
<!--/*/ <th:block th:include="fragments/header :: header"></th:block> /*/-->
<div th:if="${not #lists.isEmpty(locations)}">
<h2>Location List</h2>
<table class="table table-striped">
<tr>
<th>Id</th>
<th>Name</th>
<th>Aqi</th>
<th>pm10</th>
<th>View</th>
</tr>
<tr th:each="location : ${locations}">
<td th:text="${location.id}"><a href="/location/${location.id}">Id</a></td>
<td th:text="${location.name}">name</td>
<td th:text="${location.aqi}">aqi</td>
<td th:text="${location.pm10}">pm10</td>
...
Это была создана функция из контроллера, и я использовал ее для подключения к моему API, извлечения и сохранения значений из ответа. Проблема в том, что я не знаю, установлена ли связь между контроллером и шаблоном
@RequestMapping(value = "/products", method = RequestMethod.GET)
public String list(Model model) throws URISyntaxException, IOException {
model.addAttribute("locations", locationService.listAllLocations());
System.out.println("TESTING || TESTING");
//Inicializada a variável da nova localidade
Location location = new Location();
String TOKEN = "/?token=HIDDEN";
String url = "https://api.waqi.info/feed/";
String name_teste = "lisbon";
URLConnection connection = new URL(url + name_teste + TOKEN).openConnection();
connection.setRequestProperty("Accept-Charset", "UTF-8");
InputStream response = connection.getInputStream();
try (Scanner scanner = new Scanner(response)) {
String responseBody = scanner.useDelimiter("\\A").next();
System.out.println(responseBody);
System.out.println(responseBody.getClass().getName());
JsonParser parser = new JsonParser();
Gson gson = new GsonBuilder().setPrettyPrinting().create();
...
more info extraction here
...
} catch (JSONException err) {
System.out.println("Error" + err.toString());
}
}catch (Exception e){
System.out.println("Error" + e);
}
return "products";
}