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]