0

Spring MVC で「Tag-it」jQuery UI プラグインを使用しようとしています

私のコントローラーは、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]" です。

誰かがこの問題を解決する方法を知っていますか?

4

1 に答える 1

0

${tags}toString()のメソッドを呼び出しますArrayList。代わりに、カンマ区切りの文字列を準備する必要があります。これは、コントローラーまたはビューで行うことができます。

コントローラーでは、json マッパー (jackson など) を使用できます。

ObjectMapper mapper = new ObjectMapper(); // this better be a field
String tags = mapper.writeValueAsString(getAllTags());
model.addAttribute("tags", tags);
于 2013-07-17T10:45:49.853 に答える