簡體   English   中英

無法在JavaScript中獲取Java變量值以傳遞給JSP中的Java方法

[英]Unable to get java variable value inside javascript to pass to java method in jsp

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

盡管它在if條件下進入內部,但未將abc設置為true ,未將abc設置為false

您的javascript值在每次迭代中都被覆蓋。

您必須添加的條件

if(conditionForCorrectValue){
 var js = <%=valYear%>;
}

附帶說明: 如何避免JSP文件中的Java代碼?

使用JSTL

如何在jstl中使用for循環?

if(yourTrueCondition)
{
  var Year = <%= valYear %>;
  alert(Year);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM