Hi Wade,
The problem is that you are using:
<stripes:param name="productGroup">${productgroup}</stripes:param>
Here, ${productgroup} is just regular EL - you are not giving Stripes
a chance to use your formatter. Instead, use the following (this is
also what I use in the example from the book):
<stripes:param name="productGroup" value="${productgroup}"/>
This gives the Stripes param tag the opportunity to use your Formatter
to format the ProductGroup.
Let me know if that helps.
Cheers,
Freddy
http://www.stripesbook.com
On Tue, 23 Dec 2008 17:19:39 -0500, "Wade Marshall" <[email protected]>
said:
> I am trying to copy the example in Chapter 5 of the Stripes book (Daoud)
> for
> Type Converters and Model Classes, but it doesn't work.
>
> My model class is called ProductGroup, their model class is called
> Contact.
>
> The good news (I think) is that my app logs seem to indicate the
> formatter
> is being picked up by the configuration done in web.xml (see logs
> below)
>
> The bad news is that my generated HTML (wrong) looks like this.....
>
> <a
> href="/imgweb/PreCardOrder.action?productGroup=com.yff.db.model.ProductGroup%40201adc">
>
> and theirs (correct) looks like....
>
> <a href="/email_07/ContactForm.action?contact=2">
>
>
> If I'm right the configuration of the formatter being ok.....how might I
> go
> about debugging this problem from here ?
>
> Or if there's something else I should look, let me know too.
>
> Thanks all,
> Wade.
>
> ==========================================================
>
> Email_07 Application Log
>
> [16:08:00] DEBUG net.sourceforge.stripes.config.RuntimeConfiguration -
> Adding auto-discovered Formatter [class stripesbook.ext.ContactFormatter]
> for [class stripesbook.model.Contact] (from type parameter)
>
> Email_07 Formatter
>
> package stripesbook.ext;
>
> import java.util.Locale;
> import net.sourceforge.stripes.format.Formatter;
> import stripesbook.model.Contact;
>
> public class ContactFormatter implements Formatter<Contact> {
> public String format(Contact contact) {
> return String.valueOf(contact.getId());
> }
> public void init() { }
> public void setLocale(Locale locale) { }
> public void setFormatType(String type) { }
> public void setFormatPattern(String pattern) { }
> }
>
> Email_07 Model Class
>
> package stripesbook.model;
>
> import java.util.Date;
>
> public class Contact {
> ...
> private Integer id;
> }
>
> ==========================================================
>
> My Application Log
>
> 16:33:56,047 DEBUG
> net.sourceforge.stripes.config.RuntimeConfiguration:194 -
> Found Formatter [class com.yff.web.ext.ProductGroupFormatter] - type
> parameters: [class com.yff.db.model.ProductGroup]
>
> My Formatter
>
> package com.yff.web.ext;
>
> import java.util.Locale;
> import com.yff.db.model.ProductGroup;
> import net.sourceforge.stripes.format.Formatter;
>
> public class ProductGroupFormatter implements Formatter <ProductGroup>{
>
> @Override
> public String format(ProductGroup productGroup) {
> return productGroup.getId();
> }
>
> @Override
> public void init() {}
>
> @Override
> public void setFormatPattern(String pattern) {}
>
> @Override
> public void setFormatType(String type) {}
>
> @Override
> public void setLocale(Locale locale) {}
>
> }
>
> My ProductGroup Model Class
>
> package com.yff.db.model;
> ...
>
> public class ProductGroup implements Serializable
> {
> ....
> private String id;
>
> @Id
> public String getId()
> {
> return id;
> }
> ...
> }
>
>
> My JSP
>
> <stripes:link beanclass="com.yff.web.action.PreCardOrderActionBean" >
> <stripes:param name="productGroup">${productgroup}</stripes:param>
> Create
> </stripes:link>
------------------------------------------------------------------------------
_______________________________________________
Stripes-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-users