Is it reasonable to use JavaScript in a project where the client could have JavaScript turned off in his/her browser? How common is it for that
to happen? What would you use to avoid using JavaScript if that is an issue?
In such "mixed environments" it's common to take one of two approaches:
write separate pages
employ Unobtrusive JavaScript
The first is obviously a pain in the butt, and very time/resource consuming.
The latter is the better way to go but requires a great deal of finesse. In Unobtrusive JavaScript, no script is mixed in with the structural HTML, which is written so that it is functional in its own right. Then, in onload handlers (or jQuery's document-ready handler) the page is augmented with rich behaviors for those that have script enabled.
Those with script disabled experience a clunky, old-fashioned interface doing only what's possible with links and forms. Those with script enabled get a rich UI.
Neither approach is particularly easy or fun.
I've been lucky in that I've worked on enterprise-level web applications where we have the luxury of telling the users to enable script or go elsewhere.
I think I must avoid JavaScript then as I have no control over the user environment. Writing the pages to function without JavaScript has proved burdensome and virtually impossible; but you have suggested JSTL and EL so I will look there now.