qq_38197803 2019-10-31 15:23 采纳率: 0%
浏览 1127

在js写的 Thymeleaf 直接调用 Service层的代码,传参不知道怎么写,后台接受的值是null

{
                field: 'containerType',
                title: '箱型',
                formatter: function (value) {
                    var msg = [[${@emptyContainer.getMessage(value)}]];
                    console.log(msg);
                    return msg;
                }
            },
                            这么写后台直接接受的参数是null

                            {
                field: 'containerType',
                title: '箱型',
                formatter: function (value) {
                    var msg;
                    if (value == 'CONTAINER_TYPE_1') {
                        msg = [[${@emptyContainer.getMessage('CONTAINER_TYPE_1')}]];
                    }
                    if (value == 'CONTAINER_TYPE_2') {
                        msg = [[${@emptyContainer.getMessage('CONTAINER_TYPE_2')}]];
                    }
                    if (value == 'CONTAINER_TYPE_3') {
                        msg = [[${@emptyContainer.getMessage('CONTAINER_TYPE_3')}]];
                    }
                    return msg;
                }
            },

                            这么写就行,我服了
  • 写回答

1条回答 默认 最新

  • 蓝色心灵-海 2023-05-26 10:14
    关注
    第一段代码中的问题可能在于 `${@emptyContainer.getMessage(value)}` 这一段,在 formatter 函数返回之前就执行了,而此时  `value`  的值可能还未被正确地设置。因此,后台接受的参数就是 null。 
     第二段代码没有这个问题,因为每个取值都是在条件语句内部执行的,因此不需要担心  `${@emptyContainer.getMessage(value)}`  被过早调用。
     因此,可以通过在formatter函数中添加条件语句解决这个问题,这样就可以在正确的时间内获取到  `value`  的值,并正确地调用  `@emptyContainer.getMessage()`  函数了。
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?