(Bootstrap) смена карты + методы щелчка через тимелеаф - PullRequest
1 голос
/ 12 июля 2020

Я много искал, но не нашел, казалось бы, простого ответа на следующую проблему:

Я использую Thymeleaf с Bootstrap, Spring boot и Java. Все дело в статусной карточке вилки. Он должен показывать состояние с помощью цвета (работает) и обновлять его самостоятельно через определенный интервал (кажется, работает), а также должен быть доступен для вызова функции включения и выключения (не работает) Что не так? Пожалуйста, помогите мне

HTML:

    <div class="col-sm" id="checkIt" th:action="@{/controll}">
        <div class="card text-white mb-3" th:classappend="${state} ? bg-success : bg-danger" style="max-width: 18rem;">
          <div class="card-header">Plug</div>
          <div class="card-body">
            <h5 class="card-title">
            </h5>
            <p class="card-text">-> <a href="" class="stretched-link"></a></p>
          </div>
        </div>
    </div>

  <script>
function updateStates() {
    $.get("state", function(fragment) { // get from controller
        $("#checkIt").replaceWith(fragment); // update snippet of page
    });
}
setInterval(updateStates, 5000); 
  </script>

Java:

    @RequestMapping(value="/state", method=RequestMethod.GET)
public String getState(ModelMap map){
    try {
        if (plug.readState() == 1)
            map.addAttribute("state", true);
        else
            map.addAttribute("state", false);
    } catch (IOException e) {
        e.printStackTrace();
    }
    return "index :: #checkIt";
}

@RequestMapping(value="/controll")
@ResponseStatus(value = HttpStatus.OK)
public void controllP() {
    try {
        if (plug.readState() == 1)
            plug.switchOff();
        else
            plug.switchOn();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
...