比较scriptlet和javascript中的变量值

时间:2015-03-02 05:59:12

标签: javascript jsp

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

我的scriplet标签

     <%
 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>

2 个答案:

答案 0 :(得分:0)

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

 <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>

答案 1 :(得分:0)

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

<input id=hiddenPops type="hidden" name="Language" value="English">prop1=value2;prop2=value3</input>

在你的javascript中使用getElementById(hiddenPops)获取上述字段的值 将值字符串拆分为数组或根据需要,您可以使用它来匹配键并获取相应的值。

注意:这是一个解决方案,但您的方法并不好。尝试使用现代JS框架,它可以让您直接与服务器通信或只是使用Ajax