Package org.apache.struts2.json
Class JSONInterceptor
java.lang.Object
org.apache.struts2.interceptor.AbstractInterceptor
org.apache.struts2.json.JSONInterceptor
- All Implemented Interfaces:
Serializable
,ConditionalInterceptor
,Interceptor
Populates an action from a JSON string
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected String
addCallbackIfApplicable
(jakarta.servlet.http.HttpServletRequest request, String json) boolean
getDebug()
protected List
intercept
(ActionInvocation invocation) boolean
boolean
boolean
boolean
protected String
readContentType
(jakarta.servlet.http.HttpServletRequest request) protected String
readContentTypeEncoding
(jakarta.servlet.http.HttpServletRequest request) void
setCallbackParameter
(String callbackParameter) void
setDebug
(boolean debug) Turns debugging on or offvoid
setDefaultEncoding
(String val) void
setDevMode
(String mode) void
setEnableGZIP
(boolean enableGZIP) Setting this property to "true" will compress the output.void
setEnableSMD
(boolean enableSMD) void
setExcludeNullProperties
(boolean excludeNullProperties) void
setExcludeProperties
(String commaDelim) Sets a comma-delimited list of regular expressions to match properties that should be excluded from the JSON output.void
setExcludeWildcards
(String commaDelim) Sets a comma-delimited list of wildcard expressions to match properties that should be excluded from the JSON output.void
setIgnoreHierarchy
(boolean ignoreHierarchy) void
setIgnoreSMDMethodInterfaces
(boolean ignoreSMDMethodInterfaces) Ignore annotations on methods in interfaces You may need to set to this true if your action is a proxy/enhanced as annotations are not inheritedvoid
setIncludeProperties
(String commaDelim) Sets a comma-delimited list of regular expressions to match properties that should be included from the JSON output.void
setIncludeWildcards
(String commaDelim) Sets a comma-delimited list of wildcard expressions to match properties that should be included from the JSON output.void
setJSONCleaner
(JSONCleaner dataCleaner) Sets the JSONCleaner to be usedvoid
setJsonContentType
(String jsonContentType) void
setJSONPopulator
(JSONPopulator populator) Sets the JSONPopulator to be usedvoid
setJsonRpcContentType
(String jsonRpcContentType) void
setNoCache
(boolean noCache) Add headers to response to prevent the browser from caching the responsevoid
setPrefix
(boolean prefix) void
Sets the root object to be deserialized, defaults to the Actionvoid
setWrapWithComments
(boolean wrapWithComments) Wrap generated JSON with comments.Methods inherited from class org.apache.struts2.interceptor.AbstractInterceptor
destroy, init, setDisabled, shouldIntercept
-
Constructor Details
-
JSONInterceptor
public JSONInterceptor()
-
-
Method Details
-
intercept
- Specified by:
intercept
in interfaceInterceptor
- Specified by:
intercept
in classAbstractInterceptor
- Throws:
Exception
-
readContentType
-
readContentTypeEncoding
-
invoke
public RPCResponse invoke(Object object, Map data) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, JSONException, InstantiationException, NoSuchMethodException, IntrospectionException -
addCallbackIfApplicable
-
isEnableSMD
public boolean isEnableSMD() -
setEnableSMD
public void setEnableSMD(boolean enableSMD) -
setIgnoreSMDMethodInterfaces
public void setIgnoreSMDMethodInterfaces(boolean ignoreSMDMethodInterfaces) Ignore annotations on methods in interfaces You may need to set to this true if your action is a proxy/enhanced as annotations are not inherited- Parameters:
ignoreSMDMethodInterfaces
- set the flag for ignore SMD method interfaces
-
setWrapWithComments
public void setWrapWithComments(boolean wrapWithComments) Wrap generated JSON with comments. Only used if SMD is enabled.- Parameters:
wrapWithComments
- Wrap generated JSON with comments.
-
setDefaultEncoding
-
setIgnoreHierarchy
public void setIgnoreHierarchy(boolean ignoreHierarchy) - Parameters:
ignoreHierarchy
- Ignore properties defined on base classes of the root object.
-
setRoot
Sets the root object to be deserialized, defaults to the Action- Parameters:
root
- OGNL expression of root object to be serialized
-
setJSONPopulator
Sets the JSONPopulator to be used- Parameters:
populator
- JSONPopulator
-
setJSONCleaner
Sets the JSONCleaner to be used- Parameters:
dataCleaner
- JSONCleaner
-
getDebug
public boolean getDebug()- Returns:
- true if debugging is turned on
-
setDebug
public void setDebug(boolean debug) Turns debugging on or off- Parameters:
debug
- true or false
-
setDevMode
-
setExcludeProperties
Sets a comma-delimited list of regular expressions to match properties that should be excluded from the JSON output.- Parameters:
commaDelim
- A comma-delimited list of regular expressions
-
setExcludeWildcards
Sets a comma-delimited list of wildcard expressions to match properties that should be excluded from the JSON output.- Parameters:
commaDelim
- A comma-delimited list of wildcard expressions
-
setIncludeProperties
Sets a comma-delimited list of regular expressions to match properties that should be included from the JSON output.- Parameters:
commaDelim
- A comma-delimited list of regular expressions
-
setIncludeWildcards
Sets a comma-delimited list of wildcard expressions to match properties that should be included from the JSON output. The standard boilerplate (id, error, debug) are automatically included, as appropriate, so you only need to provide patterns for the contents of "result".- Parameters:
commaDelim
- A comma-delimited list of wildcard expressions
-
getIncludeProperties
- Returns:
- the appropriate set of includes, based on debug setting. Derived classes can override if there are additional, custom debug-only parameters.
-
isEnableGZIP
public boolean isEnableGZIP() -
setEnableGZIP
public void setEnableGZIP(boolean enableGZIP) Setting this property to "true" will compress the output.- Parameters:
enableGZIP
- Enable compressed output
-
isNoCache
public boolean isNoCache() -
setNoCache
public void setNoCache(boolean noCache) Add headers to response to prevent the browser from caching the response- Parameters:
noCache
- no cache
-
isExcludeNullProperties
public boolean isExcludeNullProperties() -
setExcludeNullProperties
public void setExcludeNullProperties(boolean excludeNullProperties) - Parameters:
excludeNullProperties
- Do not serialize properties with a null value
-
setCallbackParameter
-
getCallbackParameter
-
setPrefix
public void setPrefix(boolean prefix) - Parameters:
prefix
- Add "{} && " to generated JSON
-
setJsonContentType
-
setJsonRpcContentType
-