Aha! Thanks,
Sent from my iPhone On Jan 4, 2010, at 16:45, Ross Mellgren <dri...@gmail.com> wrote: > > I can answer b) -- S.param("image").flatMap(asLong) > > asLong comes from BasicTypesHelpers. > > -Ross > > On Jan 4, 2010, at 4:42 PM, Jim Wise wrote: > >> >> So, in my endless retweaking of this code, getting better (and >> learning >> more lift) on each pass, I've got a rewrite rule like this >> >> case RewriteRequest(ParsePath("image" :: image :: Nil, _, _, >> _), _, _) => >> RewriteResponse("viewImage" :: Nil, Map("image" -> image)) >> >> which is (eventually) handled by a snippet like this: >> >> def doShowOne(in: NodeSeq): NodeSeq = >> S.param("image").map(_.toLong) match { >> case Full(selected) => >> ImageInfo.findByKey(selected) match { >> case Full(i) => >> bind(...) >> case _ => >> S.error("No such image!") >> } >> case _ => >> S.redirectTo("/images") >> } >> >> Which works well if the referenced path component is the id of an >> existing image, or of a nonexistent image -- and throws an exception >> if >> the last path component can't be parsed as a long. >> >> I can catch the exception, of course, but I kinda feel there must >> be a >> cleaner way to do this -- either by not matching in the rewriting PF >> if >> the positional paramter "image" is not parseable as a long, or by >> making >> this another layer of casing in the snippet. >> >> So, two questions: >> >> a.) is there an idiom for this? >> >> b.) is there a good way to test if a String (or better, a Box >> [String]) >> is convertable toLong without a try/catch? >> >> Thanks again, >> -- >> Jim Wise >> jw...@draga.com > > -- > > You received this message because you are subscribed to the Google > Groups "Lift" group. > To post to this group, send email to lift...@googlegroups.com. > To unsubscribe from this group, send email to > liftweb+unsubscr...@googlegroups.com > . > For more options, visit this group at > http://groups.google.com/group/liftweb?hl=en > . > -- You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.