Jeff Shell doesn't find Spyce tags easy to translate into "what HTML does this output?" That's my fault for writing crappy documentation, I guess, although I did think the examples helped a bit. :)
So, briefly, here's how you translate the Spyce form tags:
<f:text name=quest label="Question:" />
- All the tags correspond closely with raw HTML. (This is part of Not Wasting Your Time.) If the HTML is "input type=foo," the corresponding Spyce tag is f:foo. So this will generate "input type=text."
- Name attribute is the same as in HTML; by default Spyce also sets the ID attribute to the same as name, for convenience working with javascript. ID may of course be overridden separately.
- The "Label" attribute generates a "label for=..." html tag pair. For most form elements, the label will be placed before the input; the exceptions are radio and checkbox buttons.
- Spyce will add a "value" attribute for you if you don't specify one; this will be the value of the GET/PUT variable corresponding to the input name if there is one, or "" otherwise.
So, the HTML generated is
<label for="quest">Question:</label> <input type="text" name="quest" id="quest" value="">
I find the Spyce notation to be concise and intuitive, once you learn a few simple rules, but to each his own.
(I covered the more "advanced" stuff over here already. Guess I should have started with the basics!)