我是JSP的新手,我正在尝试javascript
值传递给jsp
方法。
我从java类中获取列表,并从jsp中的下拉列表中循环使用选定的值,即 yearVal
以及哪个值等于分配给 java 变量。在 for 循环中,它显示字符串变量的正确值,但在 for 循环外部,它显示列表中的最后一个值。我需要获取正确的值,以便可以将该 String 变量传递给方法。
<% 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中,数组列表如下:
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 变量,而不是赋值变量 whicvh 在 if 循环中相等。
我尝试如下:
例如:
if(month != '11'){
alert('if::'+month);
<%abc = true;%>
}else{
alert('else::'+month);
<%abc = false;%>
}
虽然它正在进入内部,如果条件,它没有将abc设置为true
,它将abc设置为false
。
你的 javascript 值在每次迭代中都会被覆盖。
你必须添加一个条件,
if(conditionForCorrectValue){
var js = <%=valYear%>;
}
作为旁注:如何避免JSP文件中的Java代码?
使用 JSTL
如何在 jstl 中使用 for 循环?
if(yourTrueCondition)
{
var Year = <%= valYear %>;
alert(Year);
}