2 * Copyright (C) 2007-2012 Mathieu Baudier
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org
.argeo
.slc
.web
.mvc
;
20 import javax
.servlet
.http
.HttpServletRequest
;
21 import javax
.servlet
.http
.HttpServletResponse
;
23 import org
.argeo
.slc
.SlcException
;
24 import org
.springframework
.web
.servlet
.view
.AbstractView
;
26 import com
.springsource
.json
.writer
.JSONObject
;
28 /** Marshal one of the object of the map to the output. */
29 public class JsonView
extends AbstractView
{
30 private String modelKey
= null;
36 @SuppressWarnings(value
= { "unchecked" })
37 protected void renderMergedOutputModel(Map model
,
38 HttpServletRequest request
, HttpServletResponse response
)
41 if (modelKey
!= null) {
42 if (!model
.containsKey(modelKey
))
43 throw new SlcException("Key " + modelKey
44 + " not found in model.");
45 answer
= model
.get(modelKey
);
47 if (model
.size() != 1)
48 throw new SlcException(
49 "Model has a size different from 1. Specify a modelKey.");
50 answer
= model
.values().iterator().next();
53 if (answer
instanceof JSONObject
) {
54 ((JSONObject
) answer
).write(response
.getWriter());
56 JSONObject jsonObject
= new JSONObject(answer
);
57 jsonObject
.write(response
.getWriter());
61 public void setModelKey(String modelKey
) {
62 this.modelKey
= modelKey
;