You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 31 Next »

Each question should be a new page. Typically answers should link to content in the Reference. If the answer isn't in the Reference, then it should probably be added there and then linked to from the FAQ. Also note that some of the questions are current'y too verbose and should be broken down given that they have already been categorized (ie: Validation, Internationlization, etc).

General

Tags

Inversion of Control

Validation

Internationalization

Type Conversion


How do I get the latest version of 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

Note: WebWork from the CVS does not compile with the latest 1.5 J2sdk. Use the stable J2sdk 1.4.2.

How do I build the latest versions XWork and Webwork?
Just go into the XWork or 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.

How do I use messages from within the validator?

<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> 

How do I set a global resource bundle?
How do I change the error message for invalid inputted fields?
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.

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

How do I decouple XWork LocalizedTextUtil global resource bundle loading from serlvets (ServletContextListener)?
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.

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

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

the values in this combobox, what i need to do?
Exemple:

html tag i use to do:

<select..>
  <otpion value="" selected>XXX</option>
</selct>

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

How do I add I18N to a UI tag, like ww:textfield?

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

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

<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.

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.

Can I break up my large XWork.xml file into smaller pieces?
Sure, that's what the <include> element is for. Most xwork.xml files
already have one:

<xwork>
    <include file="webwork-default.xml"/>
    <include file="config-browser.xml"/>
    <package name="default" extends="webwork-default">
....
    </package>
    <include file="other.xml"/>
</xwork>

This tells it to load the webwork-default.xml from the webwork jar file
to get all of those interceptor and result definitions.

You can put your own <include> in your xwork.xml interchangeably with
<package> elements... They will be loaded in the same order as it reads
from top to bottom and adds things as it reads them.

Why won't the 'if' tag evaluate a one char string?

<ww:if test="#myObj.myString == 'A'">
Why doesn't this work when myString is equal to A?
</ww:if>

OGNL will interpret 'A' as a char type and not a string. Simple solution - flip the double and single quotes.

<ww:if test='#myObj.myString == "A"'>
This works!
</ww:if>

Alternatively, you can escape the double quotes in the String:

<ww:if test="#myObj.myString == \"A\"">
This works!
</ww:if>
  • No labels