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