org.directwebremoting.dwrp
Class HtmlScriptConduit

java.lang.Object
  extended by org.directwebremoting.extend.ScriptConduit
      extended by org.directwebremoting.dwrp.BaseScriptConduit
          extended by org.directwebremoting.dwrp.HtmlScriptConduit
All Implemented Interfaces:
java.lang.Comparable<ScriptConduit>, Alarm

public class HtmlScriptConduit
extends BaseScriptConduit

A ScriptConduit for use with HTML/SCRIPT wrapped Javascript output.

Scripts begin with an html and script tags. The scripts have been altered to include an 'execute-in-parent-context' wrapper.

If this conduit is used, the output should be directed to an iframe. No polling should be required.

This conduit works with IE 6/7 since the 4k buffer drawback (see PlainScriptConduit and Html4kScriptConduit does not prevent the execution of script elements.

Author:
Joe Walker [joe at getahead dot ltd dot uk]

Field Summary
 
Fields inherited from class org.directwebremoting.extend.ScriptConduit
RANK_FAST, RANK_PROCEDURAL, RANK_SLOW
 
Constructor Summary
HtmlScriptConduit(Sleeper sleeper, javax.servlet.http.HttpServletResponse response, java.lang.String batchId, ConverterManager converterManager, boolean jsonOutput)
          Simple ctor
 
Method Summary
 boolean addScript(ScriptBuffer scriptBuffer)
          Add a script to the list bound for remote execution.
 void beginStream()
          Called when we are initially setting up the stream.
 void endStream()
          Called when we are shutting the stream down.
 
Methods inherited from class org.directwebremoting.dwrp.BaseScriptConduit
cancel, close, setAccessLogLevel, setDebug, setDebugScriptOutput
 
Methods inherited from class org.directwebremoting.extend.ScriptConduit
compareTo, equals, getRank, hashCode, isHoldingConnectionToBrowser, toString
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

HtmlScriptConduit

public HtmlScriptConduit(Sleeper sleeper,
                         javax.servlet.http.HttpServletResponse response,
                         java.lang.String batchId,
                         ConverterManager converterManager,
                         boolean jsonOutput)
                  throws java.io.IOException
Simple ctor

Parameters:
response - Used to flush output
batchId - The id of the batch that we are responding to
converterManager - How we convert objects to script
Throws:
java.io.IOException - If stream actions fail
Method Detail

beginStream

public void beginStream()
Description copied from class: BaseScriptConduit
Called when we are initially setting up the stream. This does not send any data to the client, just sets it up for data.

This method is always called exactly once in the lifetime of a conduit.


endStream

public void endStream()
Description copied from class: BaseScriptConduit
Called when we are shutting the stream down.

This method is always called exactly once in the lifetime of a conduit, just before the stream is closed.


addScript

public boolean addScript(ScriptBuffer scriptBuffer)
                  throws java.io.IOException,
                         ConversionException
Description copied from class: ScriptConduit
Add a script to the list bound for remote execution.

It is not an error to refuse to handle the script and return false, it just indicates that this ScriptConduit did not accept the script. If the ScriptConduit can no longer function then it should throw an exception and it will be assumed to be no longer useful. If you want to implement this method then you will probably be doing something like calling ServletOutputStream.print(String) and passing in the results of calling ScriptBufferUtil.createOutput().

Specified by:
addScript in class ScriptConduit
Parameters:
scriptBuffer - The script to execute
Returns:
true if this ScriptConduit handled the script.
Throws:
java.io.IOException - If this conduit is broken and should not be used
ConversionException - If objects in the script can not be marshalled

Copyright 2008