struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alberto A. Flores" <aaflo...@gmail.com>
Subject Re: Runtime Expressions within Tag
Date Mon, 10 Dec 2007 20:59:48 GMT
In case anyone also needs this, I avoided this by using the <s:set ..>
tag (thus using the value stack). It worked just fine without adding the
extra property to the Action class.


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 <aaflores@gmail.com> 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 -
>>> "%{@java.lang.Integer@parseInt(#request.foo) +1}"
>>>
>>> -Wes
>>>
>>> On 12/10/07, Alberto A. Flores <aaflores@gmail.com> 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: user-unsubscribe@struts.apache.org
>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>
>>>
>> --
>>
>> Alberto A. Flores
>> http://www.linkedin.com/in/aflores
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
> 
> 

-- 

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




Mime
View raw message