2015-03-02 116 views
0

我有一個帶scriptlet標籤的jsp文件,我在其中獲取.properties文件的值。我有一個java腳本標記,在該標記中,我將下拉列表中的值存儲在變量。在下拉列表中選擇某個值時,我想將它與scriptlet中的屬性進行比較,如果它相等,則屬性文件中的值必須填充到我的文本框中。我曾嘗試下面的代碼,但它不工作在scriplet和javascript中比較變量值

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

回答

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

它正在工作。我在腳本標記內添加了三個循環,只有最後一個循環正在執行。你能告訴我我能做些什麼來執行所有的if循環嗎? – V02169194 2015-03-02 07:05:57

+0

你可以發佈代碼嗎? – 2015-03-02 07:16:38

+0

我已經用if循環編輯了上面的代碼 – V02169194 2015-03-02 08:38:41

0

使用scriplets填充從scriplet就像一個隱藏字段的值:

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

在JavaScript得到上述領域使用的getElementById(hiddenPops)的值 斯普利特值字符串轉換成數組或者根據需要,您可以使用它來匹配鍵並獲取相應的值。

注意:它的解決方案,但你的方法不是很好。嘗試使用現代的JS框架,它可以讓你直接與服務器交談或簡單地使用Ajax