I ended up doing the following for my use case which resolved my question here.
This scheme persists last set of form values from user till server restart (across sessions)
def render = {
...
var fieldname1 = initialize this from the map for this user
The map is defined in a singleton object
val fields = new mutable.HashMap[String, mutable.HashMap[String,String]]
of the form Map(useremail, Map(fieldname -> fieldvalue))
...
def process():JsCmd = {
...
update the key,value combinations for this user
key is fieldname1 and value is stored in the var with the same name
process def is called on submission
...
} // end process
...
"@fieldname1" #> SHtml.text(fieldname1, fieldname1 = _) &
"type=submit" #> ajaxSubmit("Query", process)
} // end render
The first param of text is used to initialize the form field
The second param could be written as formvalue => fieldname1 = formvalue
Clearly this assignment only happens when a value is actually received
So on page load only the first param is used to assign.
On page submit fieldname1 is updated and process runs.