Как расширение этого question, я пытаюсь вставить Javascript в свойство <h:commandButton /> onclick, поскольку action уже выполняет ajax.
Что я хочу сделать:
Получите выбранные элементы в списке и включите их в параметры, которые будут использоваться в JSF FileServlet. т.е. para2=value1¶m=value2¶m=value3
Вот что у меня есть:
<script type ="text/javascript">
function myScript() {
    var box = document.getElementbyId('myForm:box');
    var length = box.options.length;
    var paramstring = "";
    for (var i = 0; i < length; i++) {
        if (i != (length - 1) {
            if (box.options[i].selected) {
                paramstring = paramstring + "param=" + box.options[i].value + "&";
            }
        } else {
            paramstring = paramstring + "param=" + box.options[i].value;
        }
    }
    if (document.getElementById('myForm:checkbox').checked) {
        window.location='fileServlet? + paramstring;
    }
}
</script>  
Что я получаю при загрузке страницы:
javax.servlet.ServletException: Error Parsing /page.xhtml: Error Traced[line:15] The content of elements must consist of well-formed character data or markup.
Что не вызывает исключение:
<script type ="text/javascript">
function myScript() {
    var box = document.getElementbyId('myForm:box');
    var length = box.options.length;
    var paramstring = "";
    if (document.getElementById('myForm:checkbox').checked) {
        window.location='fileServlet? + paramstring;
    }
}
</script> 
Как только я добавлю в for (var i = 0; i < length; i++) или даже for (var i = 0; i < 10; i++), страница не будет загружена. Почему это не нравится цикл for?
