Just a hint: DMI can be dangerous and we think about removing it.

2013/9/23 Christoph Nenning <christoph.nenn...@lex-com.net>:
> It seems a little late to join this discussion, but anyway here is what I
> think.
>
>
> Per default the framework shows validation errors for simple GET requests.
>
> The easiest way to work around that is to add "!input" to the url, like
> this:
>
> login!input.action
>
> You can bookmark that and generate links to the page like that.
>
>
> But I consider that rather ugly.
>
>
> The solution proposed by Lukasz is to use 2 actions: one for GET requests
> and another one for POST requests. I didn't think of that before.
>
>
>
> Here is what we usually do:
> - action.execute() is used for displaying the page (GET requests)
> - it returns INPUT (as it is the default for validation errors)
> - the INPUT result is mapped to a tile
> - enable DMI
> - for POST requests the actions provide other methods like
> login()/save()/create()
> - those methods return a result name like "redisplay" which is mapped to a
> actionRedirect result (redirect after POST)
> - to invoke the other action methods we use parameter names prefixed with
> "method:"
>
> That way we get nice URLs for GET requests and pages are shown without
> validation errors per default. And we can handle the complete page in one
> action class.
>
>
> An issue that arises is to properly initialize actions. If validation
> errors are present execute() is not invoked, so we use Prepareable to load
> data we need to display (or init lists used for <select>s and stuff like
> that). But we have to take care that we don't override user input with DB
> content in prepare(), so some initializtaion is done in prepare() and some
> is done in execute().
>
> To avoid that we use AJAX validation which makes actions much simpler.
>
>
>
> Regards,
> Christoph
>
>
>
>
>>
>> "You cannot forward to actions"
>>
>> Thanks, that was the idea that was missing from my understanding.
>>
>> Got it working the way I wanted in a minute :)
>>
>> Many thanks - appreciated :)
>> Serdyn du Toit
>>
>>
>>
>> On Mon, Sep 23, 2013 at 8:47 AM, Lukasz Lenart
> <lukaszlen...@apache.org>wrote:
>>
>> > 2013/9/22 Serdyn du Toit <dutoi...@gmail.com>:
>> > > What I have now is as follows:
>> > >     <package name="login" namespace="/admin/login"
> extends="default">
>> > >         <default-interceptor-ref name="any" />
>> > >         <action name="login-form">
>> > >             <result name="success">/admin/login/login.jsp</result>
>> > >         </action>
>> > >         <action name="login"
>> > > class="com.d6.admin.login.AdminUserLoginAction">
>> > >             <result
> name="input">/admin/login/login-form.htm</result>
>> > >             <result
>> > name="success">/admin/dashboard/dashboard.htm</result>
>> > >         </action>
>> > >     </package>
>> > >
>> > > The following part is just problematic - I'm struggling to find
> these
>> > > resources.  My browser tells me "the requested resources is not
>> > available",
>> > > but when I hit the actions directly everything works 100%
>> >
>> > You cannot forward to actions - that what you do right now: <result
>> > name="input">.... - changing extension to .htm doesn't change action
>> > in a file. You can forward only to static resources (files), actions
>> > are logical resources.
>> >
>> > Remove "struts.action.extension" - stick with default.
>> >
>> > Check out struts2-blank application and see how it is solved there -
>> > example.xml, Login action class, Login.jsp and Login-validation.xml
>> >
>> > https://svn.apache.org/repos/asf/struts/struts2/trunk/apps/blank/
>> >
>> >
>> > Regards
>> > --
>> > Łukasz
>> > + 48 606 323 122 http://www.lenart.org.pl/
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>> > For additional commands, e-mail: user-h...@struts.apache.org
>> >
>> >
>
> This Email was scanned by Sophos Anti Virus

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to