org.apache.turbine.modules.screens

## Class JSONScreen

- java.lang.Object
- - org.apache.turbine.modules.Assembler
  - - org.apache.turbine.modules.Screen
    - - org.apache.turbine.modules.screens.RawScreen
      - - org.apache.turbine.modules.screens.JSONScreen

- Direct Known Subclasses:
    JSONSecureScreen

      public class JSONScreen
      extends RawScreen

  A Screen class for dealing with JSON-RPC requests. Typically you would extend this class and override the doOutput() method to use TurbineJsonRpc to register the POJOs that will provide the functions you are making available via JSON-RPC. Use JSONSecureScreen if you need the user to be logged in prior to executing the functions you provide.

  Here is an example from a superclass: `public void doOutput(PipelineData data) throws Exception { User user = data.getUser(); MyJsonFunctions myFunctions = new MyJsonFunctions(user.getName()); // Session specific TurbineJsonRpc.registerObject(data.getSession(), "myFunctions", myFunctions); // Global //TurbineJsonRpc.registerObjectGlobal("testGlobal", testObject); super.doOutput(data); }`

  The class MyFunctions would be something like: `public class MyJsonFunctions { private String getHello(String clientParameter) { return "Hello " + clientParameter; } }`

  This code is derived from the com.metaparadigm.jsonrpc.JSONRPCServlet and (after upgrade) checked against org.jabsorb.JSONRPCServlet.

  Version:
    $Id: JSONScreen.java 1812628 2017-10-19 12:34:25Z gk $
  Author:
    brad@folkens.com, Scott Eade

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static int` | `BUFFER_SIZE`
    `protected static String` | `JSONRPC_CONTENT_TYPE`
    `protected JsonRpcService` | `jsonRpcService` Injected service instance

    - ### Fields inherited from class org.apache.turbine.modules.Screen

      `CACHE_SIZE_DEFAULT, CACHE_SIZE_KEY, NAME, PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JSONScreen()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `doOutput(PipelineData pipelineData)` Output the dynamic content.
    `protected String` | `getContentType(PipelineData pipelineData)` Set the content type.

    - ### Methods inherited from class org.apache.turbine.modules.screens.RawScreen

      `doBuild, getLayout`

    - ### Methods inherited from class org.apache.turbine.modules.Screen

      `build, getPrefix, setLayout`

    - ### Methods inherited from class org.apache.turbine.modules.Assembler

      `getRunData`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### JSONRPC_CONTENT_TYPE

          protected static final String JSONRPC_CONTENT_TYPE

      See Also:
        Constant Field Values

    - #### BUFFER_SIZE

          protected static final int BUFFER_SIZE

      See Also:
        Constant Field Values

    - #### jsonRpcService

          protected JsonRpcService jsonRpcService

      Injected service instance

  - ### Constructor Detail

    - #### JSONScreen

          public JSONScreen()

  - ### Method Detail

    - #### getContentType

          protected String getContentType(PipelineData pipelineData)

      Description copied from class: `RawScreen`
      Set the content type. This method should be overridden to actually set the real content-type header of the output.
      Specified by:
        `getContentType` in class `RawScreen`
      Parameters:
        `pipelineData` - Turbine information.
      Returns:
        A String with the content type.
      See Also:
        `RawScreen.getContentType(org.apache.turbine.pipeline.PipelineData)`

    - #### doOutput

          protected void doOutput(PipelineData pipelineData)
                           throws Exception

      Output the dynamic content. Encodign is UTF-8. @`JSONRPC_CONTENT_TYPE`: "application/json;charset=utf-8".
      Specified by:
        `doOutput` in class `RawScreen`
      Parameters:
        `pipelineData` - The PipelineData object.
      Throws:
        `Exception` - a generic exception.

Copyright © 2000–2018 The Apache Software Foundation. All rights reserved.