Class FormHandler

java.lang.Object
net.i2p.router.web.FormHandler
Direct Known Subclasses:
ConfigAdvancedHandler, ConfigClientsHandler, ConfigFamilyHandler, ConfigHomeHandler, ConfigKeyringHandler, ConfigLoggingHandler, ConfigNetHandler, ConfigPeerHandler, ConfigReseedHandler, ConfigServiceHandler, ConfigStatsHandler, ConfigSummaryHandler, ConfigTunnelsHandler, ConfigUIHandler, ConfigUpdateHandler, EventLogHelper, GraphHelper, NetDbHelper, WizardHandler

public abstract class FormHandler extends Object
Simple form handler base class - does not depend on servlets or jsp, but instead the subclasses are populated with javabean properties. e.g. <jsp:setProperty name="handler" property="*" /> The form is "processed" after the properties are set and the first output property is retrieved - either getAll(), getNotices() or getErrors(). This Handler will only process a single POST. The jsp bean must be declared scope=request.
  • Field Details

    • _context

      protected RouterContext _context
    • _log

      protected Log _log
    • _settings

      protected Map _settings
      Not for multipart/form-data, will be null
    • _requestWrapper

      protected RequestWrapper _requestWrapper
      Only for multipart/form-data. Warning, parameters are NOT XSS filtered
    • _action

      protected String _action
    • _method

      protected String _method
    • _out

      protected Writer _out
  • Constructor Details

    • FormHandler

      public FormHandler()
  • Method Details

    • setContextId

      public void setContextId(String contextId)
      Configure this bean to query a particular router context
      Parameters:
      contextId - beginning few characters of the routerHash, or null to pick the first one we come across.
    • setNonce

      public void setNonce(String val)
    • setAction

      public void setAction(String val)
    • setSettings

      public void setSettings(Map settings)
      For many forms, it's easiest just to put all the parameters here.
      Since:
      0.9.4 consolidated from numerous FormHandlers
    • setRequestWrapper

      public void setRequestWrapper(RequestWrapper rw)
      Only set by formhandler.jsi for multipart/form-data
      Since:
      0.9.19
    • isAdvanced

      public boolean isAdvanced()
      Same as HelperBase
      Since:
      0.9.14.1
    • getJettyString

      protected String getJettyString(String key)
      setSettings() must have been called previously Curses Jetty for returning arrays.
      Returns:
      trimmed string or null
      Since:
      0.9.4 consolidated from numerous FormHandlers
    • storeMethod

      public void storeMethod(String val)
      Call this to prevent changes using GET
      Parameters:
      val - the request method
      Since:
      0.8.2
    • storeWriter

      public void storeWriter(Writer out)
      Since:
      0.9.38
    • storeNonces

      public void storeNonces(String n1, String n2)
      The old nonces from the session
      Since:
      0.9.4
    • processForm

      protected abstract void processForm()
      Implement this to perform the final processing (in turn, adding formNotice and formError messages, etc) Will only be called if _action is non-null and the nonce is valid.
    • addFormError

      protected void addFormError(String errorMsg)
      Add an error message to display Use if it does not include a link. Escapes '<' and '>' before queueing
    • addFormNotice

      protected void addFormNotice(String msg)
      Add a non-error message to display Use if it does not include a link. Escapes '<' and '>' before queueing
    • addFormNoticeNoEscape

      protected void addFormNoticeNoEscape(String msg)
      Add a non-error message to display Use if it includes a link or other formatting. Does not escape '<' and '>' before queueing
      Since:
      0.9.14.1
    • addFormErrorNoEscape

      protected void addFormErrorNoEscape(String msg)
      Add an error message to display Use if it includes a link or other formatting. Does not escape '<' and '>' before queueing
      Since:
      0.9.19
    • getAllMessages

      public String getAllMessages()
      Display everything, wrap it in a div for consistent presentation
    • getErrors

      public String getErrors()
      Display any error messages (processing the form if it hasn't been yet)
    • getNotices

      public String getNotices()
      Display any non-error messages (processing the form if it hasn't been yet)
    • getNewNonce

      public String getNewNonce()
      Generate a new nonce. Only call once per page!
      Returns:
      a new random long as a String
      Since:
      0.8.5
    • _t

      public String _t(String s)
      translate a string
    • _t

      public String _t(String s, Object o)
      translate a string with a parameter This is a lot more expensive than _t(s), so use sparingly.
      Parameters:
      s - string to be translated containing {0} The {0} will be replaced by the parameter. Single quotes must be doubled, i.e. ' -> '' in the string.
      o - parameter, not translated. To translate parameter also, use _t("foo {0} bar", _t("baz")) Do not double the single quotes in the parameter. Use autoboxing to call with ints, longs, floats, etc.
    • _t

      public String _t(String s, Object o, Object o2)
      two params @since 0.8.2
    • _x

      public static String _x(String s)
      Mark a string for extraction by xgettext and translation. Use this only in static initializers. It does not translate!
      Returns:
      s