Jsp 在onload函数中使用会话变量时出现问题

Jsp 在onload函数中使用会话变量时出现问题,jsp,session,servlets,Jsp,Session,Servlets,我试图在servlet调用后创建一个警报框,具体取决于我的一个输入字段“UpdCMDStatus”中的值。似乎我需要将其放入JSP程序的onload事件中(如果错误,请更正我)。这是我在HTML末尾的脚本函数调用 window.onload = confirmProcess; function confirmProcess() { var statusCheck = $('#UpdCMDS

我试图在servlet调用后创建一个警报框,具体取决于我的一个输入字段“UpdCMDStatus”中的值。似乎我需要将其放入JSP程序的onload事件中(如果错误,请更正我)。这是我在HTML末尾的脚本函数调用

           window.onload = confirmProcess;

           function confirmProcess()
              {

                var statusCheck = $('#UpdCMDStatus').val();
                alert("Status Check pulled is " + statusCheck );

                if (statusCheck === "CP" || statusCheck === "RP")
                {
                    var modifymode = $('#RecordFlag').val();
                    alert ("Modify Mode flag is " + modifymode) ;
                    if (modifymode === "Y")
                    {
                       alert("Schedule Numbers for Status 'VP' and 'CP' cannot " +
                                   " be Updated")    ;

                    }
                    else
                    {
                      var modifymode = $('#RecordFlag').val();
                      alert ("Modify Mode flag if status is not CP/RP is " + modifymode) ;  

                   }

               }


           }     ;
下面是我在EFTscreen servlet中对这个#RecordFlag会话变量的处理:

   if (action.matches("searchMEFTS"))
    {
        System.out.println("Entering the process to go to MEFTS screen.  Continue");
        session.setAttribute("RecordFlag", " ");

        if (screenaccess.matches("mainEFT"))
        {
           String startStatus = "NP" ;
           session.setAttribute("UpdCMDStatus", startStatus);



           session.setAttribute("UpdCMDCreationDate", CMDcurrentdate);

           wkStatus = startStatus; 


        }
        else
        {    

           wkStatus = request.getParameter("UpdCMDStatus");
           session.setAttribute("UpdCMDStatus", wkStatus);

           wkCreation = request.getParameter("UpdCMDCreationDate");
           session.setAttribute("UpdCMDCreationDate", wkCreation);
           session.setAttribute("RecordFlag", "Y");

        }


       Sum_EFTBean meftsResults = new Sum_EFTBean() ;
       List<Sum_EFTBean> Updresults ; 
       Updresults = EFTQuery.selectDates(wkStatus, wkCreation) ;
       numberOfEntries = Updresults.size() ; 
       url = "/updatesched.jsp";

       if (numberOfEntries == 0) 
         {
           message = ("No open EFT Schedule Numbers found") ;
           session.setAttribute("messageMEFS",message) ;

         }
       else      
        {    
         session.setAttribute("Updresults", Updresults);


        } 

    } 
if(action.matches(“searchMEFTS”))
{
System.out.println(“进入流程以转到MEFTS屏幕。继续”);
session.setAttribute(“RecordFlag”,即“”);
if(screenaccess.matches(“mainEFT”))
{
字符串startStatus=“NP”;
setAttribute(“UpdCMDStatus”,startStatus);
setAttribute(“UpdCMDCreationDate”,CMDcurrentdate);
wkStatus=开始状态;
}
其他的
{    
wkStatus=request.getParameter(“UpdCMDStatus”);
session.setAttribute(“UpdCMDStatus”,wkStatus);
wkCreation=request.getParameter(“UpdCMDCreationDate”);
session.setAttribute(“UpdCMDCreationDate”,wkCreation);
session.setAttribute(“记录标志”、“Y”);
}
Sum_EFTBean meftsResults=新的Sum_EFTBean();
列出升级结果;
Updresults=EFTQuery.selectDates(wkStatus,wkCreation);
numberOfEntries=Updresults.size();
url=“/updatesched.jsp”;
if(numberOfEntries==0)
{
消息=(“未找到打开的EFT计划编号”);
setAttribute(“messageMEFS”,message);
}
其他的
{    
setAttribute(“Updresults”,Updresults);
} 
} 
在检查modifymode字段的alert语句中,它显示为未定义。使用session变量的问题是因为load事件还是您看到了其他问题


谢谢

请注意,提交表单后,所有输入字段都将重置(清除)。当然,在servlet中,您可以创建(比如)属性showAlert,并将其设置为请求属性

boolean showAlert = request.getParameter("updCMDStatus").equals("someValue") ?true:false;
request.setAttribute("showAlert", showAlert)
然后在java脚本中,您只需编写

function confirmProcess(){

  if( ${showAlert} )//this EL expression will be replaced by either true or false
    //do something
}