Thanks Wes,

I understood what you meant in your first reply and I appreciate it. However I'm used to doing simple calculations on a JSP (like just adding a 1 to a guaranteed numeric value), independent of the Action class. I guess this is part of my coding techniques in using non-thread safe Struts 1.x Action classes vs the thread-safe nature of Struts 2.x (since each action is instantiated per request). I must admit I'm still getting used to it and their advantages.

I supposed I took advantage of the weak typing occurred in EL expressions. My questions was more oriented in whether such weak typing can be achieved using Struts 2.x tags. Adding a property to my action seemed like too much of an overhead to my action. My first guess would be no, since OGNL is meant to encourage strong typing, but thought of asking.

In general, I try to keep my JSPs as readable as they can be and adding a non-string variable to the JSP by virtue of the Action class didn't seem right. Furthermore, it seemed to me like everytime I wanted to do a similar computation on the fly, I would need to add a property to my action(s) so that i can compute something on a JSP (e.g. looping over a collection, etc). But if there is no other way, I'll be adding the setter/getter to my Action (I agree with you on the Exception issue).

Thanks for your help!



Wes Wannemacher wrote:
I don't think you are understanding what I am telling you... When you
read a parameter directly, it will be a string. It's pretty much the
same as calling -

request.getParameter("paramName");
(http://java.sun.com/products/servlet/2.2/javadoc/javax/servlet/ServletRequest.html#getParameter(java.lang.String))

Since that returns a String, it will be treated like a String. Adding
a getter to your action will pass it through the converters, etc. so
that you can treat it like a number. My second suggestion is to do
some OGNL scripting to convert it, but I would advise to add
getter/setter to your action since a NumberFormatException can be
raised (that could be silently swallowed).

On 12/10/07, Alberto A. Flores <[EMAIL PROTECTED]> wrote:
Thanks Wes,

No offense to this approach, but is this the only way to do additions
(and for this matter, any other operations) within a struts2 tag?. This
is simply not clean (e.g. adding a property to my action for a counter,
etc).

Thanks anyway!

Alberto

Wes Wannemacher wrote:
#request.foo is going to evaluate as a j.l.String. If your action has
a getter for foo, then just refer to it as "%{foo + 1}", conversely,
if you are feeling confident, you can make a static call to parse it -
"[EMAIL PROTECTED]@parseInt(#request.foo) +1}"

-Wes

On 12/10/07, Alberto A. Flores <[EMAIL PROTECTED]> wrote:
I'm currently migrating an app from Struts 1.x to 2.x and encounter this
situation where I was calculating the tabIndex of a JSP on the fly
(reusable JSP). In struts 1.x this was done using

<c:set var="tabIndexCount" value="<%= request.getParameter("foo") %>"/>
...
<html-el:text tabIndex="${tabIndexCount + 1}" ... />


According to the Struts2 documentation, non-string attributes are
evaluated as expressions, so the following:

<s:textInput tabIndex=""%{#request.foo + 1}/>

should do the work, but instead the above code is *appending* a 1
(string concatenation). Am I missing something or this is a bug? Any ideas!


--

Alberto A. Flores
http://www.linkedin.com/in/aflores



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--

Alberto A. Flores
http://www.linkedin.com/in/aflores



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--

Alberto A. Flores
http://www.linkedin.com/in/aflores


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to