Nikolaos,

The problem I have is that I have parameterized pages that need to be both
SEO Friendly and updatable.

Action Bean:
@URLBinding("/user/{username=}/profile.html")

Example URL:
/user/jane/profile.html

But <stripes:form> will generate this URL for it:
/user//profile.html

But it needs to be:
/user/jane/profile.html

This might be due to legacy code based on the fact that mixing GET
parameters in the URL with a POST parameters is not allowed. But this
limitation should not apply to the URL's we generate with @URLBindings.

-----Original Message-----
From: Nikolaos Giannopoulos [mailto:nikol...@brightminds.org] 
Sent: Wednesday, 26 January, 2011 21:02
To: Karen
Cc: 'Stripes Users List'
Subject: Re: [Stripes-users] Stripes forms and Clean Url binding?

Karen,

My issue was with localization in that I needed a localized URI binding but
Stripes forced me to have one that it could resolve the URI to an
ActionBean.

But if I understand you correctly I'm not sure your case is an issue.  
You don't want Stripes trying to plug in parameters like "event" for example
which may have multiple submit buttons e.g. "Cancel" and "Continue".

And as far as the other parameters are concerned hidden form fields could
readily supply values back on form submit.

I for one am glad that Stripes puts little effort into determining this URL
because it offers full freedom within my form.  Again my issue was w.r.t. to
localization which is another animal altogether.

Perhaps this is not what you are talking about... if so... then an example
might help ;-)

--Nikolaos





Karen wrote:
> I like to follow-up on Nikolaos remarks about clean URLS and forms not 
> working as expected.
>
> When using the <stripes:form> tag for action beans that have an 
> @URLBinding annotation with parameters, the <stripes:form> tag ignores 
> those parameters and thus generates an unexpected and incorrect form
action URL.
>
> I'm under the impression that this could be fixed by altering the 
> 'setBeanclass' and 'doStartTag' method on the 
> net.sourceforge.stripes.tag.FormTag class. If these methods became 
> aware of the parameter defined in the @URLBinding of the ActionBean it 
> would be possible to generate a complete URL. The parameter values 
> themselves could be 'get' from the current action bean by using the Java
reflection API.
>
> This would of course only work when the action bean handling the form 
> forwards to the JSP with the form (MVC pattern). So we might want to 
> make this behavior optional.
>
> Would this be a good solution to this problem? 
>
>
> -----Original Message-----
> From: Nikolaos Giannopoulos [mailto:nikol...@brightminds.org]
> Sent: Saturday, 20 November, 2010 23:37
> To: Stripes Users List
> Subject: Re: [Stripes-users] Stripes forms and Clean Url binding?
>
> Oops... was playing around with a number of solutions. This one won't 
> work because it didn't solve the fact that form action="/article" is 
> unable to hit the @UrlBinding for the ArticleActionBean.
>
> So far what appears to work is doing the following:
> <s:form action="${actionBean.formUrlBinding}" method="POST">
>
> And then having on the action bean:
>
> public String getFormUrlBinding() {
> StringBuilder sb = new StringBuilder(); 
> sb.append("/article/").append(this.authorId).append('/').append(this.i
> d).app
> end('/').append(this.titleUrlified);
> return (sb.toString());
> }
>
> Still appears to be a hack as I am duplicating the @UrlBinding but at 
> least its encapsulated in the ActionBean... if that is any solace ;-)
>
> Cheers,
>
> --Nikolaos
>
>
>
> Nikolaos Giannopoulos wrote:
>   
>> Hi,
>>
>> So I figured out a solution to the problem:
>>
>> <s:hidden name="authorId"></s:hidden> <s:hidden name="id"></s:hidden> 
>> <s:hidden name="titleUrlified"></s:hidden>
>>
>> At first I thought it would be nice to force Stripes to build the 
>> complete @UrlBinding i.e. it is already obviously consulting the 
>> @UrlBinding to produce "/article" but understand why it isn't so. 
>> Even in my case above I didn't want "event" to be the same so I guess 
>> this offers the most flexibility... because how far do you go in 
>> binding parameters is not black & white.
>>
>> Cheers,
>>
>> --Nikolaos
>>
>>
>>
>> Nikolaos Giannopoulos wrote:
>>   
>>     
>>> Hi,
>>>
>>> We have the following Url binding:
>>> @UrlBinding("/article/{authorId}/{id}/{titleUrlified}/{$event}")
>>>
>>> And when we direct to the following url:
>>> /web/article////add
>>>
>>> It does a ForwardResolution to a form which contains:
>>>             <s:form
>>> beanclass="org.test.ui.web.action.content.ArticleActionBean"
>>>       
> method="POST">
>   
>>>                 ...
>>>                 <s:submit name="save" />
>>>                 <s:submit name="cancel" />
>>>             </s:form>
>>>
>>> However the HTML output is as follows:
>>>             <form action="/web/article" method="POST">
>>>                 ...
>>>                 <input name="save" value="Save" type="submit" />
>>>                 <input name="cancel" value="Cancel" type="submit" />
>>>             </form>
>>>
>>> But the action ="/web/article" isn't sufficient to hit our Url 
>>> binding... when we click on the "save" or "cancel" buttons???
>>>
>>> Am I missing something obvious like in the case of addParameter on 
>>> RedirectResolution?
>>>
>>> Anyone?
>>>
>>> --Nikolaos
>>>
>>>     
>>>       



------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Stripes-users mailing list
Stripes-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stripes-users

Reply via email to