Java js中的Scriptlet

Java js中的Scriptlet,java,javascript,jsp,jstl,scriptlet,Java,Javascript,Jsp,Jstl,Scriptlet,我有一个jsp页面。。。我根据请求参数动态地向页面添加一些内容(请求将返回一个数组),基于此,我必须创建一个下拉列表。我想在更改另一个下拉列表时执行此操作。。所以只能使用javascript,但我无法在js中使用scriptlet,这真的可能吗 编辑:我还想对从scriptlet检索到的值执行一些操作 是这样的 function changeMethod(){ var templateselected = document.getElementById("templateDropDown

我有一个jsp页面。。。我根据请求参数动态地向页面添加一些内容(请求将返回一个数组),基于此,我必须创建一个下拉列表。我想在更改另一个下拉列表时执行此操作。。所以只能使用javascript,但我无法在js中使用scriptlet,这真的可能吗

编辑:我还想对从scriptlet检索到的值执行一些操作

是这样的

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>';
        <%}%>
    }
}
函数更改方法(){
var templateselected=document.getElementById(“templateDropDown”);
var versionDropDown=document.getElementById(“versionDropDown”);
如果(templateselected.options.selectedIndex!=-1)
{
var selected=templateselected[templateselected.options.selectedIndex].value;
移除ChildNodes(versionDropDown);
versionDropDown.innerHTML++=''++'';
}
}

如果javascript是内联的或在同一jsp页面中声明的,则没有问题。比如:

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

var foo='${foo}';//或者如果你喜欢的话

如果它在一个单独的.js文件中,那么您应该通过一个特殊的servlet来提供.js文件

是的你可以吃这样的东西

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 = "";
} 
函数addCombo(){
var textb=document.getElementById(“txtCombo”);
var combo=document.getElementById(“combo”);
var option=document.createElement(“选项”);
option.text=“${state}”;
option.value=“${state}”;
试一试{
combo.add(选项,null);//标准
}捕获(错误){
combo.add(选项);//仅限IE
}
textb.value=“”;
} 

注意:我还没有测试这段代码,这只是一个演示

@varun-这些“操作”是什么。是什么阻止了您执行这些操作?@Bozho-我尝试了注释部分,但它不起作用。请参阅life.java上提供的代码-首先是非常好的nic名称。。其次,我们是否需要一次又一次地创建选项元素??jstl中是否也有if语句?首先,谢谢,其次,这只是一个演示,您必须根据需要修改它,是的,我们在jstl检查中有if语句