Скриптлет на js

у меня есть страница jsp... я динамически добавляю некоторый контент на страницу в зависимости от параметров запроса (массив будет возвращен по запросу), на основе этого я должен создать раскрывающийся список. я хочу сделать это при изменении другого выпадающего списка ... так что это можно сделать только с помощью javascript, но я не могу использовать скриптлет в js, это действительно возможно ??

EDIT: я также хочу выполнить некоторые действия со значениями, полученными из скриптлета.

это будет в таком роде

function changeMethod(){
    var templateselected = document.getElementById("templateDropDown");
    var versionDropDown = document.getElementById("versionDropDown");
    if ( templateselected.options.selectedIndex != -1)
    {
        var selected=templateselected[templateselected.options.selectedIndex].value;
        removeChildNodes(versionDropDown);
        <% 
        RetrieveTempSecVersions[] lsListOfFiles = (RetrieveTempSecVersions []) request.getAttribute("templateNames") ;
        for (int i=0 ; i < lsListOfFiles[1].getVersionNumber().length ; i++ ) {
            System.out.println("helllooooo");%>
        versionDropDown.innerHTML+='<OPTION VALUE="'+<%=lsListOfFiles[1].getVersionNumber()[i]%>+'">'+<%=lsListOfFiles[1].getVersionNumber()[i]%>+'</OPTION>';
        <%}%>
    }
}

person Varun    schedule 22.12.2010    source источник


Ответы (2)


Да у вас может быть что-то подобное

function addCombo() {
    var textb = document.getElementById("txtCombo");
    var combo = document.getElementById("combo");

    var option = document.createElement("option");
    <c:forEach var="state" items="${stateList}" varStatus="status">  
    option.text = "${state}";
    option.value = "${state}";
    try {
        combo.add(option, null); //Standard
    }catch(error) {
        combo.add(option); // IE only
    }
    </c:forEach>
    textb.value = "";
} 

Примечание. Я не тестировал этот код, это всего лишь демонстрация.

person jmj    schedule 22.12.2010
comment
life.java - во-первых, очень красивое имя пользователя. Во-вторых, нам не нужно снова и снова создавать элемент option ?? и есть ли у нас операторы if, также присутствующие в jstl?? - person Varun; 23.12.2010
comment
во-первых, спасибо, во-вторых, это просто демонстрация, вам придется изменить ее в соответствии с вашими потребностями, и да, у нас есть, если в jstl проверьте здесь - person jmj; 23.12.2010

Если javascript встроен или объявлен на той же странице jsp, проблем нет. Что-то типа:

<script type="text/javascript">
var foo = '${foo}'; // or <%= foo => if you like
</script>

Если он находится в отдельном файле .js, то вы должны обслуживать файл .js через специальный сервлет.

person Bozho    schedule 22.12.2010
comment
@varun - что это за действия. И что мешает вам их исполнить? - person Bozho; 22.12.2010
comment
@ Bozho - я попробовал прокомментированную часть, но она не сработала, пожалуйста, обратитесь к коду, указанному выше - person Varun; 23.12.2010