Hi all,

I've looked high and low and I can't find any clear reason why this is happening.  I'd 
be grateful to get some help on this.

In my template, I have a form action of:
$link.setPage($data.Parameters.Template)

This resolves to:
http://localhost:8081/webmail/servlet/webmail/template/security%2CAddUser.vm

My hidden field, action, points to:
security.UserAdmin

I have a security.userAdmin action class and I have a security,userAdmin template.

My submit button is named 'eventSubmit_doAdduser'

When I submit the form, my action processes the data properly and all is fine.  The 
security.UserAdmin class's doAdduser() method is called, data processed, and I'm 
returned to the security.UserAdmin screen.

HOWEVER, when I try to validate the form fields, and they don't validate properly, I 
try to set the template and send them back to the security,AddUser template like so:
setTemplate(data, data.getScreenTemplate());

This gives me the following result:
 
Error
java.lang.Exception: Screen template 
'http://localhost:8081/webmail/servlet/webmail/template/security%2CAddUser.vm' not 
found 
--------------------------------------------------------------------------------
java.lang.Exception: Screen template 
'http://localhost:8081/webmail/servlet/webmail/template/security%2CAddUser.vm' not 
found at 
org.apache.turbine.services.template.TurbineTemplateService.getParsedScreenTemplateName(TurbineTemplateService.java:726)
 at 
org.apache.turbine.services.template.TurbineTemplateService.getCachedName(TurbineTemplateService.java:573)
 at 
org.apache.turbine.services.template.TurbineTemplateService.getScreenTemplateName(TurbineTemplateService.java:413)
 at 
org.apache.turbine.services.template.TurbineTemplate.getScreenTemplateName(TurbineTemplate.java:92)
 at 
org.apache.turbine.modules.screens.VelocityScreen.buildTemplate(VelocityScreen.java:129)
 at org.apache.turbine.modules.screens.TemplateScreen.doBuild(TemplateScreen.java:130) 
at 
....

I can take the 
url:http://localhost:8081/webmail/servlet/webmail/template/security%2CAddUser.vm and 
paste it into the browser and get the page properly.  But I can't get the page when 
using setTemplate.

So, I'm thoroughly confused.

Any ideas, anyone? :-)  More raw information below.

Thanks!!!!
Philip

___raw info___
doAdduser out of my action class:

    /**
     * Add a user to the Turbine security system.
     * 
     * @param data    Will accept as parameters:
     *                userName (Required)
     * @param context
     */
    public void doAdduser(RunData data, Context context) {

        String userName =   validateField("userName", data, context, "User Name");
        String firstName =  validateField("firstName", data, context, "First Name");
        String lastName =   validateField("lastName", data, context, "Last Name");
        String password =   validateField("password", data, context, "Password");
        String self =       validateField("self", data, context, "Hidden field called 
'self'");
        String parent =     validateField("self", data, context, "Hidden field called 
'parent'");

        if (data.getMessage() != null) {
            if (self == null || self.equals("")) {
                self = data.getScreenTemplate();
            }
            Log.debug("UserAdmin.doAdduser(): setting template to " + self);

            setTemplate(data, self);
            return;
        }


        TurbineUser user = new TurbineUser();
        user.setUserName(userName);
        user.setFirstName(firstName);
        user.setLastName(lastName);
        user.setPassword(password);


        try {
            user.save();
            Log.debug("UserAdmin.doAdduser(): created a new user!");
            data.setMessage("User " + userName + " successfully added.");
        } catch (Exception e) {
            Log.error("UserAdmin.doAdduser(): " + e.getMessage());
            data.setMessage(e.getMessage());
            setTemplate(data, self);
        }

    }

security,AddUser.vm
#*
 * Test to make sure that variables are set.  Default should be empty string.
 * 
 *#
#if (!$userName)
#set ($userName = "")
#end
#if (!$firstName)
#set ($firstName = "")
#end
#if (!$lastName)
#set ($lastName = "")
#end
#if (!$password)
#set ($password = "")
#end


<form action="$link.setPage($data.Parameters.Template)" method="post">
    <table>
        #if ($data.Message != "")
        <tr>
            <td colspan="2"><font color="red"><pre>$data.Message</pre></font></td>
        </tr>
        #end
        <tr>
            <td>Username:</td>
            <td>
                <input type="text" name="userName" value="$userName"/>
            </td>
        </tr>
        <tr>
        <tr>
            <td>First Name:</td>
            <td>
                <input type="text" name="firstName" value="$firstName"/>
            </td>
        </tr>
        <tr>
            <td>Last Name:</td>
            <td>
                <input type="text" name="lastName" value="$lastName"/>
            </td>
        </tr>
        <tr>
            <td>Password:</td>
            <td>
                <input type="password" name="password" value="$password"/>
            </td>
        </tr>
        <td colspan="2">
            <input type="submit" value="Add User" name="eventSubmit_doAdduser"/>
        </td>
        </tr>
    </table>
    <input type="hidden" name="action" value="security.UserAdmin"/>
</form>

Reply via email to