##
sub edit {
my $self = shift;
my $user_id = $self->query->param( 'user' );
$self->session->param( user => $user_id ); # store it
...
}
sub save {
my $self = shift;
my $user_id = $self->session->param( 'user' ); # retrieve it
...
}
##
##
sub display_form {
...
}
sub process_form {
my $self = shift;
my @input = data_from_query_or_session();
# use CAP::ValidateRM here
my @errors = validate( $profile, @input );
if( @errors ) {
# HTML::FillInForm makes this easier
return $self->display_form( @errors );
}
# submission was ok, process the data
...
}