【问题标题】:How to pass String collection from controller to view in Spring MVC如何将字符串集合从控制器传递到 Spring MVC 中的视图
【发布时间】:2013-07-17 10:40:36
【问题描述】:

我正在尝试将“Tag-it”jQuery UI 插件与 Spring MVC 一起使用

我的控制器从 DAL 获取可用标签列表并将其作为属性添加到模型中:

@RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Model model){
        DAL dal = new DAL();
        model.addAttribute("FBAppId", ConfigurationManager.getInstance().getFBAppId());
        model.addAttribute("FBAppSecret", ConfigurationManager.getInstance().getFBSecret());
        model.addAttribute("tags", dal.getAllTags());
        return "home";
    }

然后我想在视图中读取它并将其作为可用标签列表传递:

$(document).ready(function() {

        $("#myTags").tagit({
            availableTags: '${tags}'
        });
        $.ajaxSetup({ cache: true });
        $.getScript('//connect.facebook.net/en_UK/all.js', function(){
            FB.init({
            appId: '${FBAppId}',
            channelUrl: '//yourapp.com/channel.html',
        });     
        $('#loginbutton,#feedbutton').removeAttr('disabled');
        FB.getLoginStatus(updateStatusCallback);

        FB.XFBML.parse();
        });

    });

然而解释的是:"[tag1, tag2]" 而不是 ["tag1", "tag2"]

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: java javascript spring-mvc tag-it


    【解决方案1】:

    ${tags} 调用ArrayListtoString() 方法。相反,您需要准备一个逗号分隔的字符串。您可以在控制器或视图中执行此操作。

    在控制器中,您可以使用 json 映射器(例如 jackson):

    ObjectMapper mapper = new ObjectMapper(); // this better be a field
    String tags = mapper.writeValueAsString(getAllTags());
    model.addAttribute("tags", tags);
    

    【讨论】:

    • 谢谢,在将任何东西传递给模型之前,我将在控制器上使用 gson。
    猜你喜欢
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 2016-12-28
    • 2023-03-29
    相关资源
    最近更新 更多