Hi all,

We have a project where we would like to use javascript if it is enabled in
the user's browser, but allow a fallback if javascript is disabeld, along
the lines of
http://mail-archives.apache.org/mod_mbox/myfaces-users/200708.mbox/[EMAIL 
PROTECTED]

At the moment, we are content to do this manually, like e.g
<c:choose>
  <c:when test="${javascriptEnabled}">
    <!-- commandLink does not work without javascript -->
    <h:commandLink...>
  </c:when>
  <c:otherwise>
    <!-- commandButton works without javaScript -->
    <h:commandButton ...>
  </c:otherwise>
</c:choose>

In the myfaces configuration in web xml, I stumbled across the
org.apache.myfaces.DETECT_JAVASCRIPT setting, which sounds like it could be
used to do javascript detection. Checking the source code, the relevant
method is org.apache.myfaces.shared_impl.renderkit.html.util.
JavascriptUtils.isJavascriptDetected(). This method checks the session
variable org.apache.myfaces.shared_impl.renderkit.html.util.JavascriptUtils
.JAVASCRIPT_DETECTED to see whether javascript is detected, but this
session variable is (according to our research) never set by myfaces.

So the question is what is the intended use of the
org.apache.myfaces.DETECT_JAVASCRIPT setting ? Should the application set
the associated session variable manually ?

Assuming that the answer is "yes", would it make sense to check this
automatically ? The idea would be to render additional javascript in the
h:form component which sets a http request parameter, and to check if the
request parameter is there when the form is submitted. If the request
parameter appears, javascript is switched on, if not, it is switched off.
The problem with this would be that the very first page would have to work
without javascript, as one server round trip is needed to check the
outcome.

If there is interest in this, I'd offer to create a patch.

    regards,

      Thomas

Reply via email to