我有一个带有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>
答案 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