Hi, 

during the development of one project using Struts I experienced some
problems with the logic:equals tag. What I want to do is to compare a string
in an ActionForm to the empty string. As far as I understand it, I would
have to use two nested tags like

        <logic:present name="formBean" property="prop">
                <logic:equal name="formBean" property="prop" value="">
                        ... code fails here
                </logic:equal> 
        </logic:present>

It seems as if the servlet API tries to convert the empty string to some
datatype but this obviously fails (or better is not possible) and so the
null value is still assigned to the value attribute in the CompareTagBase
class. And this class throws a NullPointerException when the condition()
method tries to convert the value into different types (line 180).

Has anyone already thought of a <logic:isEmpty> tag that looks if a value is
null or empty?
Is there are public need for this tag?

The other problem seems more serious! If the user waits for a long time, the
session gets timed-out. When the new request arrives, a new session will be
created and, in my case, an ActionForm instance will be put into the session
context (since I was in the middle of filling out a form). Now everything
looks fine to the application, but it is not since the ActionForm did not
contain the values I have entered but the default ones :-(

There is no hook into the session management (as I have seen). The first
method that accesses and implicitly creates the session is processLocale()
in the ActionServlet. 

Shouldn't we introduce a method like processSession() at the very beginning
of the process() method to provide a possibility to intercept session
deprecation and creation. In my case it would be sufficient to redirect to
user to a special "your session has expired" page.

Any comments are welcome!

        Andreas


------------------------------------------------------------------------
Andreas Prohaska                          Mail: [EMAIL PROTECTED]
Apeiron GmbH                              Tel : +49 (089) 278257-40
Hohenzollernstr. 81                       Fax : +49 (089) 278257-49
80796 Muenchen
------------------------------------------------------------------------ 

Reply via email to