比较scriplet和javascript中的变量值

比较scriplet和javascript中的变量值,javascript,jsp,Javascript,Jsp,我有一个带有scriptlet标记的jsp文件,我在其中获取.properties文件的值。我有一个java脚本标记,我在其中将下拉列表中的值存储在一个变量中。在下拉列表中选择某个值时,我想将其与scriptlet中的属性进行比较,如果该值相等,则必须在我的文本框中填充属性文件中的值。我尝试了以下代码,但它不起作用 我的便签 <% Properties prop = new Properties(); String propFileName = "server. proper

我有一个带有scriptlet标记的jsp文件,我在其中获取.properties文件的值。我有一个java脚本标记,我在其中将下拉列表中的值存储在一个变量中。在下拉列表中选择某个值时,我想将其与scriptlet中的属性进行比较,如果该值相等,则必须在我的文本框中填充属性文件中的值。我尝试了以下代码,但它不起作用

我的便签

     <%
 Properties prop = new Properties();
 String propFileName = "server. properties";

       InputStream inputStream = getClass().getClassLoader().getResourceAsStream(propFileName);

        if (inputStream != null) {
        prop.load(inputStream);
        } else {
      throw new FileNotFoundException("property file '" + propFileName + "'not found in the classpath");
     }
    String appName = prop.getProperty("Demo_name");
  String link = prop.getProperty("Demo_Links");
 String database = prop.getProperty("DemoApps_DataBase");
  %>

JavaScript

     <script type="text/javascript">
        function OnSelectionChange(serverName) {
            var selectedOption = serverName.options[serverName.selectedIndex];
            var txtbox=document.getElementById('serverLink');
            var appName=<%=appName%>;
           var links=<%=link%>
           alert(appName.value);
           if(selectedOption.value==appName.value){
                  txtbox.value=links.value;

               }
        }
  </script>

函数OnSelectionChange(服务器名){
var selectedOption=serverName.options[serverName.selectedIndex];
var txtbox=document.getElementById('serverLink');
var-appName=;
变量链接=
警报(appName.value);
if(selectedOption.value==appName.value){
txtbox.value=links.value;
}
}

试试这段代码。您选择的值是否区分大小写

 <script type="text/javascript">
            function OnSelectionChange(serverName) {
                var selectedOption = serverName.options[serverName.selectedIndex].value;

                var txtbox=document.getElementById('serverLink');
                var demoName='<%=demoServer%>';
                var testName='<%=testingServer%>';
                var PNGName='<%=pngServer%>';
                var DCPName='<%=dcpServer%>';
                var demoLink='<%=demoLink%>';
                var testLink='<%=testingLink%>';
               var pngLink='<%=pngLink%>';
               var dcpLink='<%=dcpLink%>';                                   

                if(selectedOption==appName){
                      txtbox.value=links;
                  }
               if(selectedOption==PNGName){
                 txtbox.value=pngLink;
                }
               if(selectedOption==DCPName){
                  txtbox.value=dcpLink;
               }
               if(selectedOption==demoName){
               txtbox.value=demoLink;
              }
            }
      </script>

函数OnSelectionChange(服务器名){
var selectedOption=serverName.options[serverName.selectedIndex].value;
var txtbox=document.getElementById('serverLink');
var demoName='';
var testName='';
变量PNGName='';
var DCPName='';
var demoLink='';
var testLink='';
var pngLink='';
变量dcpLink='';
如果(selectedOption==appName){
txtbox.value=链接;
}
if(selectedOption==PNGName){
txtbox.value=pngLink;
}
if(selectedOption==DCPName){
txtbox.value=dcpLink;
}
如果(selectedOption==demoName){
txtbox.value=demoLink;
}
}

使用scriplets在scriplets的隐藏字段中填充值,如:

<input id=hiddenPops type="hidden" name="Language" value="English">prop1=value2;prop2=value3</input>
prop1=value2;prop2=值3
在javascript中,使用getElementById(hiddenPops)获取上述字段的值 将值字符串拆分为数组或根据需要,您可以使用它匹配键并获取相应的值


注意:这是一个解决方案,但您的方法并不好。尝试使用现代JS框架,它可以让您直接与服务器对话,也可以简单地使用Ajax,因为它正在工作。我在脚本标记中又添加了三个if循环,只执行最后一个if循环。你能建议我如何执行所有的if循环吗?