Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Q. How do I get the latest version of Webwork2 Webwork and XWork from CVS?
cvs -d :pserver:guest@cvs.dev.java.net:/cvs login
(Use an empty password, just hit enter..)
cvs -d :pserver:guest@cvs.dev.java.net:/cvs checkout webwork
cvs -d :pserver:guest@cvs.dev.java.net:/cvs checkout xwork Q.

How do I build Webwork2/Xworkthe latest versions XWork and Webwork?
Just go into the xwork XWork or webwork directory WebWork directories and run 'ant' (you must have ant installed and have the jars of junit and clover inside $ANT_HOME/lib)

Once you have built the xwork.jar copy it into the webwork/lib/core folder, and delete the old one. Q.

How do I use messages from within the validator?

Code Block
xml
xml
<validators>
    <field name="name">
        <field-validator type="requiredstring">
            <message key="template.name.errors.required">A default message in case the key is not found</message>
        </field-validator>
    </field>
</validators> 

Q. How do I set a global resource bundle?

Java class (thanks Drew McAuliffe):

...

Code Block
xml
xml
<listener>
<listener-class>mypackagename.WebworkGlobalMessagesListener</listener-class>
</listener> 

Q. How do I change the error message for invalid inputted fields?
A: You need to create a message for that field, for example if you have a user.dob field you would use this in your messages file (see above for example on setting a global messages file):
invalid.fieldvalue.user.dob=Please enter Date of Birth in the correct format. Q.

How do I get access to the Session?
A: ActionContext.getContext().getSession() (returns Map, works internally using a ThreadLocal) Q.

How can I see all parameters passed into the Action?
A: ActionContext.getParameters() (returns Map, works internally using a ThreadLocal) Q.

How can I get the HttpServletRequest?
A: ServletActionContext.getRequest() (works internally using a ThreadLocal)

Q: How can I use the IOC container to initialize a component in another object that isnt an action?
A: obtain Obtain the ComponentManager from the request: ComponentManager cm = (ComponentManager) ServletActionContext.getRequest().getAttribute("DefaultComponentManager");
then you need to initialize it using: cm.initializeObject(Object)

Q. How do I decouple XWork LocalizedTextUtil global resource bundle loading from serlvets (ServletContextListener)?
A. If you're using XWork outside a Web context, then use whatever startup hooks you have in that context (i.e. application start for a desktop app) to add the global resource bundle. This is a startup activity, so use whatever mechanisms are provided in the context you're running in.

Q. What i need to do to put values in a combobox. If I am using webwork2?
If i have :

Code Block
#tag(Select "label='xxx '" "name='xxx'" "list=?")
or 
#tag(combobox "label='Prioridade'" "name='inavis.avisTpPrioridade'" "list=?")

...

so...i need to do this using Webwork2 Webwork tags from Velocity...how can i do this??

Q. How do I add I18N to a WW2 TagUI tag, like ww:textfield?

Code Block
<ww:textfield label="'i18n.label'" name="'label1'" value="''">

A. This will get the localized text message for the key "i18n.label" and put it in the label.

Code Block
<ww:textfield label="getText('i18n.label')" name="'label1'" value="''">

Alternatively, you could modify controlheader.vm and copy it to /template/xhtml. There you could make it so that it automatically does a call to $stack.findValue("getText($parameters.label)"), making the first example actually work for i18n.

Q: Can I add I18N outside the Action's context? i.e. adding i18n to some JSP using the ww taglib?
Yes, use the <ww:i18n> tag to push a resource bundle on to the stack. Now calls with <ww:text/> or <ww:property value="getText(...)"/> will read from that resource bundle.