2 * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
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.
17 package org
.argeo
.slc
.web
.mvc
;
21 import javax
.servlet
.http
.HttpServletRequest
;
22 import javax
.servlet
.http
.HttpServletResponse
;
24 import org
.argeo
.slc
.SlcException
;
25 import org
.springframework
.web
.servlet
.view
.AbstractView
;
27 import com
.springsource
.json
.writer
.JSONObject
;
29 /** Marshal one of the object of the map to the output. */
30 public class JsonView
extends AbstractView
{
31 private String modelKey
= null;
37 @SuppressWarnings(value
= { "unchecked" })
38 protected void renderMergedOutputModel(Map model
,
39 HttpServletRequest request
, HttpServletResponse response
)
42 if (modelKey
!= null) {
43 if (!model
.containsKey(modelKey
))
44 throw new SlcException("Key " + modelKey
45 + " not found in model.");
46 answer
= model
.get(modelKey
);
48 if (model
.size() != 1)
49 throw new SlcException(
50 "Model has a size different from 1. Specify a modelKey.");
51 answer
= model
.values().iterator().next();
54 if (answer
instanceof JSONObject
) {
55 ((JSONObject
) answer
).write(response
.getWriter());
57 JSONObject jsonObject
= new JSONObject(answer
);
58 jsonObject
.write(response
.getWriter());
62 public void setModelKey(String modelKey
) {
63 this.modelKey
= modelKey
;