Ah, silly me. I just assumed that the problem was with the primary 
snippet for the page. I forgot that I've written my own Menu snippet, 
and a Misc snippet and that there are multiple calls to snippets on 
every page. Turns out I added some links at the bottom of default.html 
using <lift:Menu.link instead of <lift:Menu.item .

Whoops. Learn something new every five minutes.

Sorry for bothering the list.

Chas.

Charles F. Munat wrote:
> Sorry. Too lazy to cleanse I just left the package off. There is one, 
> and a model._ import, too.
> 
> BTW, the snippet is responding, it just gives that snippet error and the 
> edit doesn't bind the object's values to the form fields. The list and 
> add abilities work just fine. That's what's so confusing. I can't see 
> what's all that different from the JPADemo one except Derek's works and 
> mine doesn't.
> 
> Chas.
> 
> David Pollak wrote:
>> You have to define a package for Category.scala
>>
>> On Fri, Oct 10, 2008 at 4:00 PM, Charles F. Munat <[EMAIL PROTECTED] 
>> <mailto:[EMAIL PROTECTED]>> wrote:
>>
>>
>>     Thanks, Derek. Actually, I don't use .html or even "add" (all my html
>>     files are called index.html -- I use directories to sort them). This
>>     error came when I was experimenting to see if that made a difference.
>>
>>     That said, I get the error all the time. I don't have val dispatch... in
>>     my snippets. But that's because I copied the JPADemo over, and your
>>     AuthorOps and BookOps don't have the val dispatch either. But the
>>     JPADemo doesn't get this error.
>>
>>     Also, my edit functions don't work -- the forms are not populated
>>     properly. I thought I had it working a minute ago, and now it isn't
>>     again.
>>
>>     I switched the snippets around a bit and dropped the bind (because I
>>     wanted to color code alternate rows and wasn't sure how to do it
>>     otherwise). Here is an example:
>>
>>     snippet/Category.scala:
>>
>>     import scala.xml.{NodeSeq,Text}
>>
>>     import net.liftweb.http.{RequestVar,S,SHtml}
>>     import net.liftweb.util.Helpers
>>     import S._
>>     import Helpers._
>>
>>     import Model._
>>
>>     class CategoryOps {
>>       val formatter = new java.text.SimpleDateFormat("dd MMM yyyy")
>>
>>       def getRowClass(r: Int) = {
>>         if (r % 2 == 0) "even" else "odd"
>>       }
>>
>>       def list: NodeSeq = {
>>         <tr valign="top" align="left">
>>           <th class="text">Name</th>
>>           <th class="integer">Links</th>
>>           <th class="blank"> </th>
>>           <th class="blank"> </th>
>>         </tr> ::
>>
>>     
>> Model.createNamedQuery[Category]("findAllCategories").getResultList().toList.zipWithIndex.flatMap(c
>>     => <tr valign="top" class={getRowClass(c._2)}>
>>           <td class="text">{c._1.name <http://1.name>}</td>
>>           <td class="integer">{SHtml.link("/links/search/", {() =>
>>                  WeblinkOps.resultVar(Model.createNamedQuery[Weblink](
>>       "findWeblinksByCategory", "id" -> category.id
>>     <http://category.id>).getResultList().toList)
>>             }, Text(category.weblinks.size().toString))}</td>
>>           <td class="edit">{SHtml.link("editor", () =>
>>     categoryVar(category), Text("Edit"))}</td>
>>           <td class="delete"> </td>
>>         </tr>)
>>       }
>>
>>       object categoryVar extends RequestVar(new Category())
>>       def category = categoryVar.is
>>
>>       def editor (xhtml : NodeSeq) : NodeSeq = {
>>         def addOrUpdate () = {
>>           if (category.name.length == 0) {
>>            error("emptyCategory", "The category's name cannot be blank")
>>           } else {
>>            Model.merge(category)
>>            redirectTo("/admin/categories/")
>>           }
>>         }
>>
>>         val currentId = category.id <http://category.id>
>>
>>         <form method="POST" action="">
>>           <table class="editor" border="0" cellpadding="3" cellspacing="0">
>>             <tr valign="top" align="left">
>>               <th>Name</th>
>>               <td>{SHtml.text(category.name <http://category.name>,
>>     category.name <http://category.name> = _)}</td>
>>             </tr>
>>             <tr valign="top" align="left">
>>               <th>{SHtml.hidden({category.id <http://category.id> =
>>     currentId})} </th>
>>               <td>{SHtml.submit("Save", addOrUpdate)}</td>
>>             </tr>
>>           </table>
>>         </form>
>>       }
>>     }
>>
>>     webapp/admin/categories/editor/index.html:
>>
>>     <lift:surround with="default" at="content">
>>       <h2>Categories</h2>
>>       <table class="list">
>>         <lift:CategoryOps.list/>
>>       </table>
>>     </lift:surround>
>>
>>     And in Boot.scala:
>>
>>     Menu(Loc("categories", List("admin", "categories", "index"),
>>         "Categories", LocGroup("admin")),
>>       Menu(Loc("categories_add", List("admin", "categories", "editor",
>>         "index"), "Add a New Category", Hidden))
>>     ),
>>
>>     ANY suggestions for how to do any of this better greatly appreciated. Do
>>     I need to add the val dispatch... part? If so, why is this different
>>     from the JPADemo?
>>
>>     Thanks!
>>     Chas.
>>
>>
>>     Derek Chen-Becker wrote:
>>      > It means that the dispatch function on whatever Stateful Snippet is
>>      > being called isn't matching what you're asking it to provide. For
>>      > instance, if your snippet tag looks like
>>      >
>>      > <lift:MySnippet.add>
>>      >
>>      > Then the dispatchPf in the MySnippet stateful snippet has to have a
>>      > dispatch function like:
>>      >
>>      > val dispatch: DispatchIt = {
>>      >     case "add" => <some function here> _
>>      >   }
>>      >
>>      > See
>>      >
>>     
>> http://scala-tools.org/mvnsites-snapshots/liftweb/lift-webkit/scaladocs/index.html
>>      > for more details.
>>      >
>>      > I also know that David has recently /strongly/ recommended not
>>     putting
>>      > ".html" on the ends of things.
>>      >
>>      > Derek
>>      >
>>      > On Fri, Oct 10, 2008 at 3:15 PM, Charles F. Munat <[EMAIL PROTECTED]
>>     <mailto:[EMAIL PROTECTED]>
>>      > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> wrote:
>>      >
>>      >
>>      >     What exactly does this mean? I get a lot of these.
>>      >
>>      >     WARN - Snippet Failure: SnippetFailure(/admin/users/add.html ->
>>      >       ParsePath(List(admin, users, add),html,true,false),
>>      >       Full(Menu.link),
>>      >       Stateful Snippet: Dispatch Not Matched)
>>      >
>>      >     What is failing here and what are the probable causes?
>>      >
>>      >     Thanks.
>>      >
>>      >     Chas.
>>      >
>>      >
>>      >
>>      >
>>      > >
>>
>>
>>
>>
>>
>> -- 
>> Lift, the simply functional web framework http://liftweb.net
>> Collaborative Task Management http://much4.us
>> Follow me: http://twitter.com/dpp
>> Git some: http://github.com/dpp
>>
> 
> > 

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to