【发布时间】:2013-12-30 06:21:16
【问题描述】:
我是 JSP 新手,我正在尝试将 javascript 值传递给 jsp 方法。
在下面的循环中,我从 java 类中获取列表,并使用 jsp 下拉列表中的选定值进行循环,即yearVal,以及哪个值等于分配给 java 变量。在 for 循环内,它显示字符串变量的正确值,但在 for 循环外,它显示列表中的最后一个值。我需要获得正确的值,以便我可以将该字符串变量传递给方法。
<% String valYear=""; %>
<%for(int k=0;k<lists.getYearList().size();k++){%>
if(yearVal==<%= lists.getYearList().get(k)%>){
<%valYear = lists.getYearList().get(k);%>
alert('inside scriptlet:::'+<%=valYear%>);
}
<%}%>
alert('outside scriptlet year val:::'+<%=valYear%>);
java中的arraylist如下:
public List<String> yearList = new ArrayList<String>();
public List<String> getYearList() {
if(yearList.isEmpty()){
yearList.add("2012");
yearList.add("2013");
yearList.add("2014");
yearList.add("2015");
yearList.add("2018");
}
return yearList;
}
public void setYearList(List<String> yearList) {
this.yearList = yearList;
}
最后一个值 2018 在 jsp 中赋值给 java 变量,而不是在 if 循环中赋值 whicvh 相等的变量。
我正在尝试如下:
例如:
if(month != '11'){
alert('if::'+month);
<%abc = true;%>
}else{
alert('else::'+month);
<%abc = false;%>
}
虽然它进入了if条件,但它没有将abc设置为true,而是将abc设置为false。
【问题讨论】:
-
似乎是变量范围的问题。能否请您发布完整的jsp代码,因为我们看不到少数变量的声明,以便我们可以使用它的范围进行验证。
-
请不要那样做(混合js和jsp)..
-
没有选项,此应用程序中没有使用任何框架,我必须使用 javascript 和 jsp :(
标签: java javascript jsp jsp-tags