[Wicket-user] Detached Models and Forms
Is it possible to use a LoadableDetachableModel with a Form? The problem I'm running into is the following:1) Create the Form with: new Form(form, new CompoundPropertyModel(new MyDetachableModel(fooId, fooService))); 2) Present the page to the user for editing. The user edits the fields and submits the form.3) The model object is reloaded from the database/cache, wiping out what the user entered. Is there any way around clobbering the user input? It doesn't look like it since the LoadableDetachableModel is doing exactly what it's supposed to, but I want to make sure I'm not missing something. - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Detached Models and Forms
Yeah, those models are typically perfect for doing database stuff. The only thing is that if all validations pass, you should update the database. But that's usually exactly what you want, right? If validation fails, the model is indeed reloaded from the database, but that's not something that is in the user's way as for components for which the validation failed, the input values of last request will be displayed instead of the current model values. Eelco On 7/31/06, Nick Heudecker [EMAIL PROTECTED] wrote: Is it possible to use a LoadableDetachableModel with a Form? The problem I'm running into is the following: 1) Create the Form with: new Form(form, new CompoundPropertyModel(new MyDetachableModel(fooId, fooService))); 2) Present the page to the user for editing. The user edits the fields and submits the form. 3) The model object is reloaded from the database/cache, wiping out what the user entered. Is there any way around clobbering the user input? It doesn't look like it since the LoadableDetachableModel is doing exactly what it's supposed to, but I want to make sure I'm not missing something. - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Detached Models and Forms
But that's not the behavior I'm seeing. On successful validation, the model object is refreshed from the database after the form updates the model object, clobbering the user-entered data. On 7/31/06, Eelco Hillenius [EMAIL PROTECTED] wrote: Yeah, those models are typically perfect for doing database stuff. Theonly thing is that if all validations pass, you should update thedatabase. But that's usually exactly what you want, right? Ifvalidation fails, the model is indeed reloaded from the database, but that's not something that is in the user's way as for components forwhich the validation failed, the input values of last request will bedisplayed instead of the current model values.EelcoOn 7/31/06, Nick Heudecker [EMAIL PROTECTED] wrote: Is it possible to use a LoadableDetachableModel with a Form?The problem I'm running into is the following: 1) Create the Form with: new Form(form, new CompoundPropertyModel(new MyDetachableModel(fooId, fooService))); 2) Present the page to the user for editing.The user edits the fields and submits the form. 3) The model object is reloaded from the database/cache, wiping out what the user entered. Is there any way around clobbering the user input?It doesn't look like it since the LoadableDetachableModel is doing exactly what it's supposed to, but I want to make sure I'm not missing something. - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user-Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share youropinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___Wicket-user mailing listWicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Detached Models and Forms
After successful validation, you should update the database with the object that is in your detachable model. They should be in sync then. If for some reason, you need to read in the value fresh in the same request, just call detach on that model to ensure next time it is read it will first re-load the actual model. Eelco On 7/31/06, Nick Heudecker [EMAIL PROTECTED] wrote: But that's not the behavior I'm seeing. On successful validation, the model object is refreshed from the database after the form updates the model object, clobbering the user-entered data. On 7/31/06, Eelco Hillenius [EMAIL PROTECTED] wrote: Yeah, those models are typically perfect for doing database stuff. The only thing is that if all validations pass, you should update the database. But that's usually exactly what you want, right? If validation fails, the model is indeed reloaded from the database, but that's not something that is in the user's way as for components for which the validation failed, the input values of last request will be displayed instead of the current model values. Eelco On 7/31/06, Nick Heudecker [EMAIL PROTECTED] wrote: Is it possible to use a LoadableDetachableModel with a Form? The problem I'm running into is the following: 1) Create the Form with: new Form(form, new CompoundPropertyModel(new MyDetachableModel(fooId, fooService))); 2) Present the page to the user for editing. The user edits the fields and submits the form. 3) The model object is reloaded from the database/cache, wiping out what the user entered. Is there any way around clobbering the user input? It doesn't look like it since the LoadableDetachableModel is doing exactly what it's supposed to, but I want to make sure I'm not missing something. - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Detached Models and Forms
So something like this?public void onSubmit() { Foo f = (Foo) getModelObject(); ...}or like: public void onSubmit() { Foo f = (Foo) getModel().getObject(null); ...} Because the first one refreshes the object from the database. On 7/31/06, Eelco Hillenius [EMAIL PROTECTED] wrote:After successful validation, you should update the database with the object that is in your detachable model. They should be in sync then.If for some reason, you need to read in the value fresh in the samerequest, just call detach on that model to ensure next time it is readit will first re-load the actual model. EelcoOn 7/31/06, Nick Heudecker [EMAIL PROTECTED] wrote: But that's not the behavior I'm seeing.On successful validation, the model object is refreshed from the database after the form updates the model object, clobbering the user-entered data.On 7/31/06, Eelco Hillenius [EMAIL PROTECTED] wrote: Yeah, those models are typically perfect for doing database stuff. The only thing is that if all validations pass, you should update the database. But that's usually exactly what you want, right? If validation fails, the model is indeed reloaded from the database, but that's not something that is in the user's way as for components for which the validation failed, the input values of last request will be displayed instead of the current model values. EelcoOn 7/31/06, Nick Heudecker [EMAIL PROTECTED] wrote: Is it possible to use a LoadableDetachableModel with a Form?The problem I'm running into is the following: 1) Create the Form with: new Form(form, new CompoundPropertyModel(new MyDetachableModel(fooId, fooService))); 2) Present the page to the user for editing.The user edits the fields and submits the form. 3) The model object is reloaded from the database/cache, wiping out what the user entered. Is there any way around clobbering the user input?It doesn't look like it since the LoadableDetachableModel is doing exactly what it's supposed to, but I want to make sure I'm not missing something. - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user- Take Surveys. Earn Cash. Influence the Future of ITJoin SourceForge.net's Techsay panel and you'll get the chance to share youropinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___Wicket-user mailing listWicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Detached Models and Forms
Both methods have the same effect. The attachement of models is hidden in the models, not in the components. Detachement is done by components after rendering. Preferably is getModelObject, but just because it is shorter and it hides getting the model. What happens in that request is that first the model object will be fetched from the database (the first time model.getObject is called somewhere). When all validation succeeds, that object is then updated with the form values etc. If you access that in the onSubmit method, you'll still have that same - now udpated - object, provided you didn't manually detach your model yourself somehow. So, just get that object, save it, and you're done. Eelco On 7/31/06, Nick Heudecker [EMAIL PROTECTED] wrote: So something like this? public void onSubmit() { Foo f = (Foo) getModelObject(); ... } or like: public void onSubmit() { Foo f = (Foo) getModel().getObject(null); ... } Because the first one refreshes the object from the database. On 7/31/06, Eelco Hillenius [EMAIL PROTECTED] wrote: After successful validation, you should update the database with the object that is in your detachable model. They should be in sync then. If for some reason, you need to read in the value fresh in the same request, just call detach on that model to ensure next time it is read it will first re-load the actual model. Eelco On 7/31/06, Nick Heudecker [EMAIL PROTECTED] wrote: But that's not the behavior I'm seeing. On successful validation, the model object is refreshed from the database after the form updates the model object, clobbering the user-entered data. On 7/31/06, Eelco Hillenius [EMAIL PROTECTED] wrote: Yeah, those models are typically perfect for doing database stuff. The only thing is that if all validations pass, you should update the database. But that's usually exactly what you want, right? If validation fails, the model is indeed reloaded from the database, but that's not something that is in the user's way as for components for which the validation failed, the input values of last request will be displayed instead of the current model values. Eelco On 7/31/06, Nick Heudecker [EMAIL PROTECTED] wrote: Is it possible to use a LoadableDetachableModel with a Form? The problem I'm running into is the following: 1) Create the Form with: new Form(form, new CompoundPropertyModel(new MyDetachableModel(fooId, fooService))); 2) Present the page to the user for editing. The user edits the fields and submits the form. 3) The model object is reloaded from the database/cache, wiping out what the user entered. Is there any way around clobbering the user input? It doesn't look like it since the LoadableDetachableModel is doing exactly what it's supposed to, but I want to make sure I'm not missing something. - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV