Change page dynamically using th:if and th:replcae in thymeleaf












0















Here are my controllers:



@RequestMapping(value="/user/edit/{id}", method = RequestMethod.GET)
public String editForm(@PathVariable Integer id,Model model) {
model.addAttribute("UserInfo", userService.getUserById(id));
return "EditUser";
}


@RequestMapping(value="/moduleList", method = RequestMethod.GET)
public String moduleList(Model model) {
model.addAttribute("moduleCommand", new Module());
model.addAttribute("moduleList", applicationService.getAllModules());
return "modulelist";
}


rightSection.html



    <div th:fragment="rightSectionBar">
<div class="container body">
<div class="title_section" style="margin-top: 50px;">
<div class="col-md-2 heading">
<h4>Home</h4>
</div>
</div>
<div class="col-md-9 right_col">
<div class="clearfix"></div>
<!-- page content -->
<span th:replace="fragments/contents::dashboard"></span>

//I want to see below content on calling "/user/edit/{id}" url
<span th:replace="fragments/EditUser::editUsersBar"></span>

//I want to see below content on calling "/moduleList" url
<span th:replace="fragments/modulelist::modulesListBar"></span>
</div>
</div>
</div>


I am trying to keep sidemenu and top navigation same on every page and just want to change right section content only.










share|improve this question




















  • 2





    You can write something like <th:block th:if="${UserInfo}"> <span th:replace="fragments/EditUser::editUsersBar"></span></th:block>. Similarly another block for the other span.

    – Sujit
    Jan 18 at 13:29











  • Thanks, @Sujit, this worked for me :)

    – Shashwat Tyagi
    23 hours ago











  • Glad I could help, I have added this as an answer, would be great if you can approve it. Thanks

    – Sujit
    17 hours ago


















0















Here are my controllers:



@RequestMapping(value="/user/edit/{id}", method = RequestMethod.GET)
public String editForm(@PathVariable Integer id,Model model) {
model.addAttribute("UserInfo", userService.getUserById(id));
return "EditUser";
}


@RequestMapping(value="/moduleList", method = RequestMethod.GET)
public String moduleList(Model model) {
model.addAttribute("moduleCommand", new Module());
model.addAttribute("moduleList", applicationService.getAllModules());
return "modulelist";
}


rightSection.html



    <div th:fragment="rightSectionBar">
<div class="container body">
<div class="title_section" style="margin-top: 50px;">
<div class="col-md-2 heading">
<h4>Home</h4>
</div>
</div>
<div class="col-md-9 right_col">
<div class="clearfix"></div>
<!-- page content -->
<span th:replace="fragments/contents::dashboard"></span>

//I want to see below content on calling "/user/edit/{id}" url
<span th:replace="fragments/EditUser::editUsersBar"></span>

//I want to see below content on calling "/moduleList" url
<span th:replace="fragments/modulelist::modulesListBar"></span>
</div>
</div>
</div>


I am trying to keep sidemenu and top navigation same on every page and just want to change right section content only.










share|improve this question




















  • 2





    You can write something like <th:block th:if="${UserInfo}"> <span th:replace="fragments/EditUser::editUsersBar"></span></th:block>. Similarly another block for the other span.

    – Sujit
    Jan 18 at 13:29











  • Thanks, @Sujit, this worked for me :)

    – Shashwat Tyagi
    23 hours ago











  • Glad I could help, I have added this as an answer, would be great if you can approve it. Thanks

    – Sujit
    17 hours ago
















0












0








0








Here are my controllers:



@RequestMapping(value="/user/edit/{id}", method = RequestMethod.GET)
public String editForm(@PathVariable Integer id,Model model) {
model.addAttribute("UserInfo", userService.getUserById(id));
return "EditUser";
}


@RequestMapping(value="/moduleList", method = RequestMethod.GET)
public String moduleList(Model model) {
model.addAttribute("moduleCommand", new Module());
model.addAttribute("moduleList", applicationService.getAllModules());
return "modulelist";
}


rightSection.html



    <div th:fragment="rightSectionBar">
<div class="container body">
<div class="title_section" style="margin-top: 50px;">
<div class="col-md-2 heading">
<h4>Home</h4>
</div>
</div>
<div class="col-md-9 right_col">
<div class="clearfix"></div>
<!-- page content -->
<span th:replace="fragments/contents::dashboard"></span>

//I want to see below content on calling "/user/edit/{id}" url
<span th:replace="fragments/EditUser::editUsersBar"></span>

//I want to see below content on calling "/moduleList" url
<span th:replace="fragments/modulelist::modulesListBar"></span>
</div>
</div>
</div>


I am trying to keep sidemenu and top navigation same on every page and just want to change right section content only.










share|improve this question
















Here are my controllers:



@RequestMapping(value="/user/edit/{id}", method = RequestMethod.GET)
public String editForm(@PathVariable Integer id,Model model) {
model.addAttribute("UserInfo", userService.getUserById(id));
return "EditUser";
}


@RequestMapping(value="/moduleList", method = RequestMethod.GET)
public String moduleList(Model model) {
model.addAttribute("moduleCommand", new Module());
model.addAttribute("moduleList", applicationService.getAllModules());
return "modulelist";
}


rightSection.html



    <div th:fragment="rightSectionBar">
<div class="container body">
<div class="title_section" style="margin-top: 50px;">
<div class="col-md-2 heading">
<h4>Home</h4>
</div>
</div>
<div class="col-md-9 right_col">
<div class="clearfix"></div>
<!-- page content -->
<span th:replace="fragments/contents::dashboard"></span>

//I want to see below content on calling "/user/edit/{id}" url
<span th:replace="fragments/EditUser::editUsersBar"></span>

//I want to see below content on calling "/moduleList" url
<span th:replace="fragments/modulelist::modulesListBar"></span>
</div>
</div>
</div>


I am trying to keep sidemenu and top navigation same on every page and just want to change right section content only.







java spring-boot thymeleaf






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 18 at 12:44









Erwin Bolwidt

23.8k123858




23.8k123858










asked Jan 18 at 12:41









Shashwat TyagiShashwat Tyagi

358




358








  • 2





    You can write something like <th:block th:if="${UserInfo}"> <span th:replace="fragments/EditUser::editUsersBar"></span></th:block>. Similarly another block for the other span.

    – Sujit
    Jan 18 at 13:29











  • Thanks, @Sujit, this worked for me :)

    – Shashwat Tyagi
    23 hours ago











  • Glad I could help, I have added this as an answer, would be great if you can approve it. Thanks

    – Sujit
    17 hours ago
















  • 2





    You can write something like <th:block th:if="${UserInfo}"> <span th:replace="fragments/EditUser::editUsersBar"></span></th:block>. Similarly another block for the other span.

    – Sujit
    Jan 18 at 13:29











  • Thanks, @Sujit, this worked for me :)

    – Shashwat Tyagi
    23 hours ago











  • Glad I could help, I have added this as an answer, would be great if you can approve it. Thanks

    – Sujit
    17 hours ago










2




2





You can write something like <th:block th:if="${UserInfo}"> <span th:replace="fragments/EditUser::editUsersBar"></span></th:block>. Similarly another block for the other span.

– Sujit
Jan 18 at 13:29





You can write something like <th:block th:if="${UserInfo}"> <span th:replace="fragments/EditUser::editUsersBar"></span></th:block>. Similarly another block for the other span.

– Sujit
Jan 18 at 13:29













Thanks, @Sujit, this worked for me :)

– Shashwat Tyagi
23 hours ago





Thanks, @Sujit, this worked for me :)

– Shashwat Tyagi
23 hours ago













Glad I could help, I have added this as an answer, would be great if you can approve it. Thanks

– Sujit
17 hours ago







Glad I could help, I have added this as an answer, would be great if you can approve it. Thanks

– Sujit
17 hours ago














1 Answer
1






active

oldest

votes


















1














You can use th:block and th:if for this purpose. Thymeleaf will execute the attributes within th:block will make the it disappear as th:block is a mere attribute container.



<div class="col-md-9 right_col">
<div class="clearfix"></div>
<span th:replace="fragments/contents::dashboard"></span>

<th:block th:if="${UserInfo}">
<span th:replace="fragments/EditUser::editUsersBar"></span>
</th:block>
<th:block th:if="${moduleCommand}">
<span th:replace="fragments/modulelist::modulesListBar"></span>
</th:block>
</div>





share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54254270%2fchange-page-dynamically-using-thif-and-threplcae-in-thymeleaf%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    You can use th:block and th:if for this purpose. Thymeleaf will execute the attributes within th:block will make the it disappear as th:block is a mere attribute container.



    <div class="col-md-9 right_col">
    <div class="clearfix"></div>
    <span th:replace="fragments/contents::dashboard"></span>

    <th:block th:if="${UserInfo}">
    <span th:replace="fragments/EditUser::editUsersBar"></span>
    </th:block>
    <th:block th:if="${moduleCommand}">
    <span th:replace="fragments/modulelist::modulesListBar"></span>
    </th:block>
    </div>





    share|improve this answer




























      1














      You can use th:block and th:if for this purpose. Thymeleaf will execute the attributes within th:block will make the it disappear as th:block is a mere attribute container.



      <div class="col-md-9 right_col">
      <div class="clearfix"></div>
      <span th:replace="fragments/contents::dashboard"></span>

      <th:block th:if="${UserInfo}">
      <span th:replace="fragments/EditUser::editUsersBar"></span>
      </th:block>
      <th:block th:if="${moduleCommand}">
      <span th:replace="fragments/modulelist::modulesListBar"></span>
      </th:block>
      </div>





      share|improve this answer


























        1












        1








        1







        You can use th:block and th:if for this purpose. Thymeleaf will execute the attributes within th:block will make the it disappear as th:block is a mere attribute container.



        <div class="col-md-9 right_col">
        <div class="clearfix"></div>
        <span th:replace="fragments/contents::dashboard"></span>

        <th:block th:if="${UserInfo}">
        <span th:replace="fragments/EditUser::editUsersBar"></span>
        </th:block>
        <th:block th:if="${moduleCommand}">
        <span th:replace="fragments/modulelist::modulesListBar"></span>
        </th:block>
        </div>





        share|improve this answer













        You can use th:block and th:if for this purpose. Thymeleaf will execute the attributes within th:block will make the it disappear as th:block is a mere attribute container.



        <div class="col-md-9 right_col">
        <div class="clearfix"></div>
        <span th:replace="fragments/contents::dashboard"></span>

        <th:block th:if="${UserInfo}">
        <span th:replace="fragments/EditUser::editUsersBar"></span>
        </th:block>
        <th:block th:if="${moduleCommand}">
        <span th:replace="fragments/modulelist::modulesListBar"></span>
        </th:block>
        </div>






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 17 hours ago









        SujitSujit

        859




        859






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54254270%2fchange-page-dynamically-using-thif-and-threplcae-in-thymeleaf%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Liquibase includeAll doesn't find base path

            How to use setInterval in EJS file?

            Petrus Granier-Deferre