1 package org
.argeo
.slc
.web
.mvc
;
5 import javax
.servlet
.http
.HttpServletRequest
;
6 import javax
.servlet
.http
.HttpServletResponse
;
8 import org
.argeo
.slc
.SlcException
;
9 import org
.springframework
.web
.servlet
.view
.AbstractView
;
11 import com
.springsource
.json
.writer
.JSONObject
;
13 /** Marshal one of the object of the map to the output. */
14 public class JsonView
extends AbstractView
{
15 private String modelKey
= null;
21 @SuppressWarnings(value
= { "unchecked" })
22 protected void renderMergedOutputModel(Map model
,
23 HttpServletRequest request
, HttpServletResponse response
)
26 if (modelKey
!= null) {
27 if (!model
.containsKey(modelKey
))
28 throw new SlcException("Key " + modelKey
29 + " not found in model.");
30 answer
= model
.get(modelKey
);
32 if (model
.size() != 1)
33 throw new SlcException(
34 "Model has a size different from 1. Specify a modelKey.");
35 answer
= model
.values().iterator().next();
38 if (answer
instanceof JSONObject
) {
39 ((JSONObject
) answer
).write(response
.getWriter());
41 JSONObject jsonObject
= new JSONObject(answer
);
42 jsonObject
.write(response
.getWriter());
46 public void setModelKey(String modelKey
) {
47 this.modelKey
= modelKey
;