首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring-Thymeleaf如何用EL调用Bean的动作方法

Spring-Thymeleaf如何用EL调用Bean的动作方法
EN

Stack Overflow用户
提问于 2021-12-14 22:01:43
回答 1查看 409关注 0票数 1

我使用Spring/SpringMVC 5.x版本,在Tomcat服务器上使用Thymeleaf和Bootstrap。

我需要问一些问题,也许在你看来,这是个"st@pid“问题。

在我的html视图中,我有以下按钮或链接:

代码语言:javascript
复制
<input type="button" .../>
<a .../>

我不需要提交一些东西,所以我只是使用一个简单的按钮,所以我认为我不需要任何形式(除非我需要这个)。

在这个html视图中(因为我在html标记中添加了thymeleaf库),我需要以某种方式(但我不知道如何)将Spring EL或Thymeleaf EL的表达式添加到这个按钮或链接中,这样我就可以从Spring调用一个方法,该方法是通过我在控制器中添加的模型在视图中传递的,例如:

代码语言:javascript
复制
${myBean.doSomething()
// or
${myBean.doSomething(parameters)

如果这不是可以理解的,我可以用一些代码更新我的问题(我相信Spring开发人员理解我在说什么)。

我不知道怎么传递这个表达式。按钮或链接标签的属性是什么?我对按钮使用了"action“属性:

代码语言:javascript
复制
<input type="button" th:action="${myBean.doSomething()".../>

或者链接标签中的"href“属性:

代码语言:javascript
复制
<a th:href= "${myBean.getStringUrlAndDoSomething()"/>

非常重要的信息

当我启动运行页面的tomcat时,EL中的操作将在页面加载时成功地运行。当我按下按钮或链接时,什么也没有发生。

我知道我不能使用"onclick“属性,因为我们在那里编写JS代码。但是我需要运行代码。

对解决我的问题有什么想法吗?提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-17 13:38:41

我听从了@M.Deinum的建议,@Wim,我没有使用按钮来完成这项工作。按钮需要一个表单才能工作。

这就是为什么我使用了一个链接,其中调用来自bean的方法就像一个咒语,如下面的片段:

代码语言:javascript
复制
<div class="blabla">
    <div class="blablabla" th:text="|#{change_lang} EN/GR:|"></div>
    <a class="bla" th:href="${localeService.switchLocale()}">
        <div th:class="|${localeService.loadCss()}_blabla|"></div>
    </a>
    <span th:text="${#locale.getLanguage()}"></span>
</div>

下一个是来自bean的片段:

代码语言:javascript
复制
public String switchLocale() {

        locale = LocaleContextHolder.getLocale();

        if (locale.getLanguage().equals("en")) {
            LocaleContextHolder.setLocale(EN_LOCALE);
            return "?lang=el";
        } else if (locale.getLanguage().equals("el")) {
            LocaleContextHolder.setLocale(GR_LOCALE);
            return "?lang=en";
        } else {
            return "";
        }
    }

因此,可以成功地调用bean中的代码。我想这就是解决我的问题的办法。

非常感谢为我提供建议的2个人@M.Deinum @Wim。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70356058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档