无法获取 javascript 中的 java 变量值以传递给 jsp 中的 java 方法



我是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);
}

最新更新