mmmh

Why don't you try to set the template by directly by its name. Using
$link.setPage("security,AddUser.vm") or
setTemplate(data, "security,AddUser.vm")

Also there is a "self" variable that is getting a value from an unknown
place. Tracking this value with a log.debug() may help.

It seems to me like setTemplate() expects a template name.(e.g.
"security,AddUser,vm")
but it is getting a complete URL.
'http://localhost:8081/webmail/servlet/webmail/template/security%2CAddUser.v
m'


> -----Original Message-----
> From: Philip Wachtel [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, August 26, 2003 4:30 PM
> To: Turbine Users List
> Subject: Template not found, driving me crazy!
> 
> 
> 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/securit
> y%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/securi
> ty%2CAddUser.vm' not found 
> --------------------------------------------------------------
> ------------------
> java.lang.Exception: Screen template 
> 'http://localhost:8081/webmail/servlet/webmail/template/securi
> ty%2CAddUser.vm' not found at 
> org.apache.turbine.services.template.TurbineTemplateService.ge
> tParsedScreenTemplateName(TurbineTemplateService.java:726) at 
> org.apache.turbine.services.template.TurbineTemplateService.ge
> tCachedName(TurbineTemplateService.java:573) at 
> org.apache.turbine.services.template.TurbineTemplateService.ge
> tScreenTemplateName(TurbineTemplateService.java:413) at 
> org.apache.turbine.services.template.TurbineTemplate.getScreen
> TemplateName(TurbineTemplate.java:92) at 
> org.apache.turbine.modules.screens.VelocityScreen.buildTemplat
> e(VelocityScreen.java:129) at 
> org.apache.turbine.modules.screens.TemplateScreen.doBuild(Temp
> lateScreen.java:130) at 
> ....
> 
> I can take the 
> url:http://localhost:8081/webmail/servlet/webmail/template/sec
> urity%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>
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to