Hmmm....
Sorry, I don't know that is OGNL, I think it's insignificant.
My question is not about null to 0/0 to null conversion.
I should provide better example. That's it:
Page:
$id
Java:
public class TestPage extends BorderPage {
@Bindable public Long id;
@Override
public void onInit() {
super.onInit();
addModel("id", String.valueOf(id));
}
}
order does matter:
REQ: /test-page.html
RES: null
REQ: /test-page.html?id=4
RES: 4
REQ: /test-page.html
RES: 4
REQ: /test-page.html (from another comp)
RES: 4
Looks like I misunderstand general concept of "stateless page". I thought we
have one object per request in Click.
According to User Guide: "Stepping through this GET request sequence, a new
Page instance is created and the attributes for the Page are set..."
But my test shows that actually page have state.
Should I place "id = null" in onDestroy() method? Is it good practice?
BTW, what kind of problems with Bindable? Except this one.
Fri, 18 Mar 2011 21:08:20 +0200 Bob Schellink <[email protected]>:
> Hi Mikhail,
>
> Click uses OGNL to bind the field's value which coerces the value to 0.
>
> Do note that in my exp Bindable has proven very problematic in practice. One
> of those things
> implicit behaviors which looks great at face value but hinders maintenance. I
> suggest you don't use
> it. In click.xml you can switch it off with autobinding="none".
>
> kind regards
>
> Bob
>
> On 2011/03/18 20:23 PM, Ingie wrote:
> > Hi all,
> >
> > First of all i like Click, thank you for great work guys.
> >
> > Can't understand @Bindable behavior:
> >
> > class MyPage extends BorderPage {
> >
> > @Bindable protected Long id;
> >
> > public void onInit() {
> > sout(id);
> > }
> >
> > }
> >
> > Output:
> >
> > for my-page.htm?id=0 -> 0 (it's ok)
> > for my-page.htm -> 0 (why?)
> >
> > Is it bug or feature?
> >
> > I run 2.3.0-RC1
> >
> > Kind regards,
> > Mikhail
> >