복붙노트

[SPRING] Thymeleaf를 사용하여 Spring 모델에서 javascript 변수 설정하기

SPRING

Thymeleaf를 사용하여 Spring 모델에서 javascript 변수 설정하기

Spring 모델에서 모델 변수를 읽고 Javascript로 설정하려면 어떻게해야합니까?

Thymeleaf를 템플릿 엔진으로 사용하고 있습니다.

봄 쪽 :

@RequestMapping(value = "message", method = RequestMethod.GET)
public String messages(Model model) {
    model.addAttribute("message", "hello");
    return "index";
}

고객 입장에서:

<script>
    ....
    var m = ${message}; // not working
    alert(m);
    ...
</script>

해결법

  1. ==============================

    1.공식 문서에 따르면 :

    공식 문서에 따르면 :

    <script th:inline="javascript">
    /*<![CDATA[*/
    
        var message = /*[[${message}]]*/ 'default';
        console.log(message);
    
    /*]]>*/
    </script>
    
  2. ==============================

    2.

    var message =/*[[${message}]]*/ 'defaultanyvalue';
    
  3. ==============================

    3.Thymeleaf 3 지금 :

    Thymeleaf 3 지금 :

    추가 정보 : http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#javascript-inlining

  4. ==============================

    4.문서에 따르면 인라이닝을 수행하는 몇 가지 방법이 있습니다. 상황에 따라 선택해야하는 올바른 방법입니다.

    문서에 따르면 인라이닝을 수행하는 몇 가지 방법이 있습니다. 상황에 따라 선택해야하는 올바른 방법입니다.

    1) 단순히 변수를 서버에서 javascript로 가져옵니다.

    <script th:inline="javascript">
    /*<![CDATA[*/
    
    var message = [[${message}]];
    alert(message);
    
    /*]]>*/
    </script>
    

    2) javascript 변수를 서버 측 변수와 결합합니다 (예 : 당신은 자바 스크립트 내부 요청에 대한 링크를 만들 필요가 :

    <script th:inline="javascript">
            /*<![CDATA[*/
            function sampleGetByJquery(v) {
                /*[+
                var url = [[@{/my/get/url(var1=${#httpServletRequest.getParameter('var1')})}]] 
                          + "&var2="+v;
                 +]*/
                $("#myPanel").load(url, function() {});
            }
            /*]]>*/
            </script>
    

    내가 해결할 수없는 한 가지 상황 - 자바 스크립트 내부에서 자바 스크립트 변수를 전달해야합니다 (템플릿을 호출하는 것은 불가능합니다).

  5. ==============================

    5.

    //Use this in java
    @Controller
    @RequestMapping("/showingTymleafTextInJavaScript")
    public String thankYou(Model model){
     model.addAttribute("showTextFromJavaController","dummy text");
     return "showingTymleafTextInJavaScript";
    }
    
    
    //thymleaf page  javascript page
    <script>
    var showtext = "[[${showTextFromJavaController}]]";
    console.log(showtext);
    </script>
    
  6. ==============================

    6.이런 종류의 일이 야생에서 일어나는 것을 보았습니다.

    이런 종류의 일이 야생에서 일어나는 것을 보았습니다.

    <input type="button"  th:onclick="'javascript:getContactId(\'' + ${contact.id} + '\');'" />
    
  7. from https://stackoverflow.com/questions/25687816/setting-up-a-javascript-variable-from-spring-model-by-using-thymeleaf by cc-by-sa and MIT license