Has anyone been able to confirm that this issue is working? I don't seem
to get it to work yet JIRA says it is. This is about having a
tag with an image and text inside the button.
Thanks,
Alberto
-
To unsubscribe, e-mail: [
> ..and this was the rendered html output..
> >
> >SubmitTextName
> > Submit
> >
> > anything wrong with the output???
> > Martin--
> > ----- Original Message -
> > From: "Eric Martin" <[EMAIL PROTECTED]>
> > To:
> >
Can you post the snippet of the way you are using
The "html:cancel" (Struts 1.x) tag still submits with interesting behavior:
- If the "property" attribute is "set", then the isCancelled() method
will not pick it up. Validation will still occurs (submission is attempted).
- If the "property" a
Can you confirm that your form is pointing to the right path?
Also, check that you are not overriding the same path (in struts config)
with a similar path are overrideable.
Garner, Shawn wrote:
From the stack track it looks like the Mapping.isCancellable is
returning false.
How can this b
Have you try replacing this:
tilesDefinitions
/WEB-INF/tiles.xml
with this
org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
/WEB-INF/tiles.xml
Antonio Petrelli wrote:
2007/12/7, Rodrigo Pereira <[EMAIL PROTECTED]>:
java.lang.NullPointerException
org.apache.
ve you attempted to set a breakpoint in the Controller and step
through
the cancellable check?
On Dec 6, 2007 4:17 PM, Garner, Shawn <[EMAIL PROTECTED]>
wrote:
And there is only one defined in the struts config.
s expressions, so the following:
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
---
:
#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, Alber
uld 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
lowed).
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 cou
ountyCode());
wbasForm.setStrAgrNum(wbasVO.getAgreementNum());
wbasForm.setPrtRate(wbasVO.getPtRate().toString());
wbasForm.setFltRate(wbasVO.getFtRate().toString());
wbasForm.setEffDate(wbasVO.getEffDate());
wbas
ntiates a new
instance of the model object, so I expect this model to be mapped to the
properties in the JSP page (using struts 2.x tags) and like I said
earlier, my model seems to have all needed properties from the request.
Any feedback will be greatly appreciate
Thanks!
Mike Jennings wrote:
You have a form value on the page called _checkbox_dna that is being set
to a string value, but there is no getter or setter in your action to
map this value to. It is nothing to worry about right now.
Alberto A. Flores wrote:
Folks,
When I set the property
ations are defined as RUNTIME).
The "annotations" methods seems very elegant, but before on using them,
I'd like to ask if anyone has experienced anything heavy?
Thanks!
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
---
he name of the form as defined
in struts-config. Alternatively, you could use JSTL to access these
forms (beans) as well.
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
To unsubscribe, e-mail: [EMAIL PROT
ng feature with Struts 2 + Spring 2 + JPA.
Has anybody done it before?
--
Filipe David Manana,
[EMAIL PROTECTED]
Obvious facts are like secrets to those not trained to see them.
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
ect mapped to the surrounding
. Using it this way (as you wrote will always force to use
the Form object in session.
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
render it just as a
normal input tag, without all the tr and td's?
Because I can't seem to get my table right when I want to do something like:
SOP Code
Any help appreciated.
-
long with displaytags, to pass values of checkbox lists or
field values to the action class.
Is there any other way to do this.
For example, in a table list of users, if the checkbox is checked then the
userid must be passed to the action class.
Thanks.
--
Alberto A. F
ere is even needed?
Why not doing trying JSTL with HTML code?
When the checkbox is checked then I should be able to get the corresponding
userid value in the action class.
Any idea how I can achieve that.
Thanks
Alberto A. Flores wrote:
If you mean for "jsps using EL tags" th
Have you tried:
Now foo has (should) have the value of the row and placed in request scope.
Swathi Ram wrote:
I'm unable to get the current row using PageContext.
It is throwing me an error.
Alberto A. Flores wrote:
Ok, this is a bit more of a hack, but should work (haven'
ful method
getUriFromActionMapping that I'd like to be able to call from within the
action...
-Dale
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Alberto A. Flores
http://www.
Have you tried?
ActionContext.getContext().getContextMap().get(ServeltActionContext.ACTION_MAPPING);
Although I haven't taken the time (yet) to explore all source code
relationships within Struts 2.
Good luck!
Dale Newfield wrote:
Alberto A. Flores wrote:
Is this a Struts 1.x or Str
s not a big question.
Thanks,
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
value="%{userId()}"/>
you can't use tags in tags.
Best Regards
Johannes Geppert
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [
wrong, and hopefully someone
will correct me if I am but -
Mr. Smith
package.properties -
message.key=Hello {0}
The docs aren't real specific on it, but there is some information here -
http://struts.apache.org/2.0.11/docs/text.html
On 12/12/07, Alberto A. Flores <[EMAIL PROTECTED
his regard is much appriciated.
Thanks,
Aum
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
checked.
Thoughts?
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
India
Mobile No :+9886006306
on-board :+91 (80) 4035 4528
E-mail : [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
message resource bundle in the formBean itself? tia
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
al.ServletStubImpl$ServletInitAction.run
()Ljava/lang/Object;(ServletStubImpl.java:1094)
60,1-8 6%
but WEB-INF/web.xml EXISTS and the path WEB-INF/web,xml is correct
,
and WEB-INF are un capital letters.I don't know?¿?¿?
Thanks
-
To unsubscribe
string for the value of the field
when reset() is called.
"Alberto A. Flores" <[EMAIL PROTECTED]> wrote: Do you mean changing the name of the method? Or calling the resource
bundle to generate a string (using the proper locale)?
Chris Pat wrote:
Hello
Is it possible to have
...
Thanks!
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
scoped" beans), by
doing the following:
%{#request.myBean}
where "myBean" is an attribute in the request object.
If anyone knows of any other way to do the same without the "#" sign,
would you let me know?
Thanks,
-
Good to know... Thanks!
Wes Wannemacher wrote:
You will be okay, AFAIK, the symbol clash is with '#{' which OGNL uses
to create anonymous maps/lists. Your usage will be okay since it
doesn't invoke UEL.
-Wes
On 12/17/07, Alberto A. Flores <[EMAIL PROTECTED]> wrote:
Ar
ce, however the validation errors appear to be lost. Thoughts?
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
t() method) but that's all? Has anyone seen
something similar?
I'm very sorry if this is not a Struts2 question, but thought of asking
since Struts2 is using Filters now and was wondering if anyone has seen
any similar behavior.
Thanks,
--
Alberto A. Flores
http://www.lin
Thanks to all for your answers. I completely missed that thread (Adam).
I'll try it today.
Alberto
Adam Hardy wrote:
Alberto A. Flores on 17/12/07 21:06, wrote:
Is it possible to redirect the "input" result (after validation has
finished) of an action mapping properly?
I
transaction has the same affect of a
rollback.
-- HTH, Ted
* <http://www.StrutsMentor.com/>
On Dec 17, 2007 4:04 PM, Alberto A. Flores <[EMAIL PROTECTED]> wrote:
Is anyone using openSessionInView with Struts 2 (Hibernate, Spring)?
I've found a problem where a domain model is still
his view. If
they're a bunch of hibernate-related calls that are all read-only, just
be sure that spring's transaction config *knows* that they're read only.
That way the OSIV filter will "do the right thing".
Or did I miss something?
- Gary
Alberto A. Flores w
hen
it is shown up?
*Color me red*
Many thanks.
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
h it is in bold.
e.g.,
If the value of the "some key" is Password, I want the "Password" is in
bold.
Any suggestion?
Thanks again.
On Dec 19, 2007 10:00 PM, Alberto A. Flores <[EMAIL PROTECTED]> wrote:
I believe the errors are within a "span" with class &qu
scribe, 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]
e an incorrectly built jar.
Struts.jar contains struts-html.tld
And strangely enough, the next example did not show the error, and was
displayed correctly. I even added Struts to the first example. But it still
does not work. If no one else has an explanation I write it off to earth
rays
uts2 or to all webapp world...) but
hopefully someone will take a look at it soon (definetely not me) :)
But as I said, the next example is not broken. So I will ponder on. But
thanks for your answer.
No problem! and good luck!
--
Alberto A. Flores
eir title.
Has anyone got something like this working before?
Thanks!
_
Introducing the City @ Live! Take a tour!
http://getyourliveid.ca/?icid=LIVEIDENCA006
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
it is rendering for. Other pages use the same .template tile but
require different dynamic fields in their title.
Has anyone got something like this working before?
Thanks!
_
Introducing the City @ Live! Take a tour!
http://getyourli
ody" tile and the actual tiles
definition knows which page it is rendering for. Other pages use the same .template tile but
require different dynamic fields in their title.
Has anyone got something like this working before?
Thanks!
___
there any other way?
I'm resetting the token every time using resetToken(httpRequest).
Please help me out.
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For ad
will do... thanks a lot!
Dave Newton wrote:
--- "Alberto A. Flores" <[EMAIL PROTECTED]> wrote:
I was wondering about the differences between these two. I have heard a
lot about some differences, but it doesn't look like the Apache site has
a direct link to 2.1.x release.
ll be appreciated.
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
ommands, e-mail: [EMAIL PROTECTED]
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
---
'cancel'
I'm using struts2:
this is the code:
thanks
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
I'll recommend using using JSTL instead.
On Jan 21, 2008 8:11 PM, Pascal SEREMES-DAMAL <[EMAIL PROTECTED]>
wrote:
> Hi everyone!!!
>
> I'd like to know if it is possible to format a number into a currency with
> the struts taglib.
>
> Thanks.
>
--
Alberto
http://www.linkedin.com/in/aflores
uot;. Why is Tomcat unable to find when I place it
in "/WEB-INF/lib" folder??
D.Sai Reddy
VNR VJIET.
-----
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
successfully with out any
problems?
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Todo depende de cuanto tiempo (y presupuesto) tengas disponible. Tambien
depende de cuanto has escrito hasta el momento.
On Feb 11, 2008 4:08 PM, Alvaro Ernesto Gomez Cerna <
[EMAIL PROTECTED]> wrote:
> Buenas tardes Grupo, actualmente me encuentro desarrollando en Strust bajo
> JSP,
> en Jdevelo
trae muchas mas bondades.
Que librerias necestaria incluir para mantener ambas dentro del mismo proyecto.
Asi ir haciendo las nuevas formas en Strust 2
-Mensaje original-
De: Alberto A. Flores [mailto:[EMAIL PROTECTED]
Enviado el: Lunes, 11 de Febrero de 2008 05:51 p.m.
Para: Struts
o dices ir cambiando
despacio de Strust 1 hacia Strust 2, pues veo que trae muchas mas bondades.
Que librerias necestaria incluir para mantener ambas dentro del mismo proyecto.
Asi ir haciendo las nuevas formas en Strust 2
-Mensaje original-
De: Alberto A. Flores [mailto:[EMAIL PROTECTED
..
Aunque lo que gustaria es de implementar solo el Ajax a la version actual que
tengo.
-Mensaje original-
De: Alberto A. Flores [mailto:[EMAIL PROTECTED]
Enviado el: Lunes, 11 de Febrero de 2008 04:15 p.m.
Para: Struts Users Mailing List; [EMAIL PROTECTED]
Asunto: Re: Actualizar Strust 1
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]
id it if
not necessary.
I've also seen mention of a Struts LookupDispatcher or MapDispatcher. Is
there something similar in Struts 2?
Thanks, any input is greatly appreciated!
Regards,
Jason
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
In case this was not a Struts question, check out:
http://java.sun.com/products/jsp/tags/11/syntaxref11.fm14.html
Hope this helps!
Alberto
On Wed, Mar 5, 2008 at 5:08 PM, temp temp <[EMAIL PROTECTED]> wrote:
> I usally use scriptlet in jsp to set some object in request is there a way
> tro do
I just solved the same problem on a linux and windows servers. Please use
UTF-8.
On Wed, Mar 5, 2008 at 5:58 PM, Jeromy Evans <
[EMAIL PROTECTED]> wrote:
> Adam Gordon wrote:
> >
> > Maybe if we invented magic, it would allow him to do what he needed
> > without following our advice.
> >
> > --
please post your struts.xml and the url you are trying to hit. Your web.xml
relevant part will also behelpful ...
On Mon, Sep 22, 2008 at 5:43 PM, Emil Lundberg <[EMAIL PROTECTED]>wrote:
> That's strange... When i set /> in struts.xml, struts goes into devMode, but still doesn't find my action
>
I disagree about the difficulty level of writing your tag in Struts2.
However, I would strongly encourage you (as others have) to see if an
already existing tag doesn't fit your needs. I'm hoping to post something in
my blog about some of this soon, however it would be worthwhile to state
what you
vokeInitMethods
(AbstractAutowireCapableBeanFactory.java:1339)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean
(AbstractAutowireCapableBeanFactory.java:1299)
... 30 more:
--
Alberto A. Flores
http://www.linkedin
Please note:
java.lang.NoClassDefFoundError: *org/apache/commons/lang/UnhandledException
*
Indicates the classloader couldn't find a class (which one, you may ask?).
Looks like commons.lang couldn't find the UnhandledException class. Please
make sure you have all displaytag dependencies. You may
I
assume I
have to code my own Converter.
I need a date in the ISO format -MM-DD
There is no converter that I can configure in the struts package, is
there?
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional command
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]
cific mention of what I
want so I
assume I
have to code my own Converter.
I need a date in the ISO format -MM-DD
There is no converter that I can configure in the struts
package, is
there?
-
To unsubscribe, e-mail: [E
looking to try and get the "IT works!" Apache
Are you using Skype? By default, Skype block port 80 and 443, disable
such port in Skype or change the default port for Apache.
You can also use netstat -b from command prompt to see all programs
with opened ports.
Regards
--
Alberto
, Lalchandra Rampersad
<[EMAIL PROTECTED]> wrote:
How do I migrate from struts 1 to 2?
Saludos
Lalchandra Rampersaud
-------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Alberto A. Flores
http://w
Does anyone know if it's possible to inject values into struts.xml
(something like PropertyConfigurer does in Spring)?
Thanks!
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
To unsubscribe, e-mail: [
ibe, 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]
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]
? I'm beginning to think I can not use Spring Security at all.
Regards,
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
I don't thinks that's possible as the Struts2 result would be something
like:
my.tile
In here, I don't have access to the forward.
Antonio Petrelli wrote:
2008/5/13 Alberto A. Flores <[EMAIL PROTECTED]>:
My understanding is that Spring Security does not secure resou
wrote:
2008/5/13 Alberto A. Flores <[EMAIL PROTECTED]>:
I don't thinks that's possible as the Struts2 result would be something
like:
my.tile
In here, I don't have access to the forward.
Mmm... it's starting to be complicated, and I think that there is a
bug somewh
work (hence the Spring Security Filter never knows of the request)
Antonio Petrelli wrote:
2008/5/13 Alberto A. Flores <[EMAIL PROTECTED]>:
I would, but it seems to me like there is little that can be done on the
Struts2 side (unless a plugin of some sort is written). Essentially, when
cont
- i use other framework then Struts2
but I started new application in Struts2.
Is it other reason why i have to use Sitemesh?
Thanks very much
-
Tomas Jurman
Czech Republic
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
quot;Group" bean.
In my JSP I have written like that :-
Now if user puts a string into this text field, then error message come like
that
*invalid value for the field group.id
But I want to show the error message with only "id" not "group.id".
Is there anybody, wh
display the created image from database.i got the image in byte
array format. can any one tell me
how to convert the byte array format into image format and display it using
struts.
Thanks in Advance
With Regards
vani
--
Alberto A. Flores
http://www.linkedin.com/in/aflores
Check the HTML form that is submitted to the server. Understanding
namespaces is a bit tricky in the beginning. Also check the "slashes"
configuration attribute as part of the mapping name.
On Fri, Jun 13, 2008 at 10:08 PM, Karr, David <[EMAIL PROTECTED]> wrote:
> I'm starting to do some simple e
described here. Have you found any solution so far?
Alberto A. Flores wrote:
Folks,
My understanding is that Spring Security does not secure resources on
*forwards* (I believe tiles2 do forward/chaining). In an application
using Struts2, Spring and Tiles2, these forwards work just fine. Has
anyone
make the action package inside spring
i have experience, writing action is another bored repeated job
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Alberto A. Flores
http
lve the problem I was just wondering why ?
Is there a definitive resolution to this problem out there somewhere ?
TIA
lyallex
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
A
the archives suggested this fix.
struts2
/*
REQUEST
FORWARD
It does appear to solve the problem I was just wondering why ?
Is there a definitive resolution to this problem out there somewhere ?
TIA
lyallex
-------------
To unsubscr
The spec clearly doesn't specify whether a forward or a response.redirect()
is used. This means that it is up to the container to decide how this is
implemented. Depending on your portability requirements, this may or may not
be an issue (Tomcat vs Weblogic, Resin, etc)...
Hmm, the whole poin
---
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]
---
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 a
AIL PROTECTED]> wrote:
Hi!
I'm using struts version 2.0.11.
I am using struts menu, which works provided it is not on top of a table
...
Please see screenshot of issue here:
http://mytmpdir.googlepages.com/menu.jpg
No idea how I can fix this!
Does anyone?
Thanks guys
--
A
---
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]
93 matches
Mail list logo