我是JSP的新手,我试图将javascript
值传递给jsp
方法。
在下面的循环中,我从java类中获取列表,并使用jsp中的下拉列表中的选定值循环,即yearVal
,并且该值等于分配给java变量。在 for 循环中,它显示String变量的正确值,但在 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中,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;%>
}
虽然如果是条件进入内部,但不是将abc设置为true
,而是将其设置为false
。
答案 0 :(得分:0)
您的javascript值在每次迭代中都会覆盖。
你必须添加条件,
if(conditionForCorrectValue){
var js = <%=valYear%>;
}
答案 1 :(得分:0)
使用 JSTL
<强> How to use for loop in jstl? 强>
if(yourTrueCondition)
{
var Year = <%= valYear %>;
alert(Year);
}