Java Servlet代码在不同的场景中转发到同一页,而不是另一页
根据我的要求,主页包含文本字段和单选按钮 场景1:当用户在文本字段中输入“locationno”并提交时,servlet将调用DB并从数据库中获取输入的locationno的记录并转发到locationDetails页面。工作正常 场景2:当用户在文本字段中同时输入locationno时,单击单选按钮servlet将调用DB并获取特定locationno的所有详细信息,并转发到locationAllDetails页面。在这里,它正确地获取记录,但总是转发到locationDetails页面,而不是locationAllDetails页面。 当我在日志中输入TextField和单选按钮后单击submit按钮时,它将Outputtype(单选按钮名称)显示为“全部”,但它始终转发到locationDetails页面,而不是locationAllDetails页面 下面的代码出了什么问题?我怀疑是因为这行代码Java Servlet代码在不同的场景中转发到同一页,而不是另一页,java,jsp,servlets,Java,Jsp,Servlets,根据我的要求,主页包含文本字段和单选按钮 场景1:当用户在文本字段中输入“locationno”并提交时,servlet将调用DB并从数据库中获取输入的locationno的记录并转发到locationDetails页面。工作正常 场景2:当用户在文本字段中同时输入locationno时,单击单选按钮servlet将调用DB并获取特定locationno的所有详细信息,并转发到locationAllDetails页面。在这里,它正确地获取记录,但总是转发到locationDetails页面,而不
request.setAttribute("locationbean", locResultsList);
请查找下面的代码并提供相关帮助
if (strSearchType != null && strSearchType.equals("locationNo")){
inLoop = "siteID : ";
RequestDispatcher rd = null;
String locationNo = null;
String flow = null;
String pagePosition = null;
String sitePagePositon = null;
String outputType = null;
List locResultsList = null;
try{
pagePosition = request.getParameter("pagePosition");
if(pagePosition != null){
request.setAttribute("pagePosition",pagePosition);
rd = this.getServletContext().getRequestDispatcher("/jsp/locationDetails.jsp");
rd.forward(request, response);
}
else{
flow = "locationSearchFlow";
locationNo = request.getParameter("locationNo");
session.setAttribute("locationNo",locationNo);
outputType = request.getParameter("outputType");
rd = this.getServletContext().getRequestDispatcher("/jsp/SiteSearchResults.jsp");
LocationCodeDAOBean locDaoBean = new LocationCodeDAOBean();
List locResultsList = locDaoBean.getLocationResults(locationNo);
request.setAttribute("locationbean", locResultsList);
if(locResultsList.size() == 0){
rd = this.getServletContext().getRequestDispatcher("/jsp/ExceptionPage.jsp");
request.setAttribute("errorMessage","No Records Returned for Site Item Location Details, Req Number = "+siteID);
rd.forward(request, response);
}else if(outputType.equals("ALL")){
locationNo = request.getParameter("locationNo ");
session.setAttribute("locationNo ",locationNo );
LocationCodeDAOBean locDaoALLBean = new LocationCodeDAOBean();
List locAllResultsList = locDaoALLBean .getALLLocationResults(locationNo);
request.setAttribute("pagePosition", "0");
request.setAttribute("locationALLbean", locAllResultsList);
session.setAttribute("flow",flow);
rd = this.getServletContext().getRequestDispatcher("/jsp/LocationSearchAllResults.jsp");
rd.forward(request, response);
}
else{
rd = this.getServletContext().getRequestDispatcher("/jsp/ExceptionPage.jsp");
request.setAttribute("errorMessage","No Records Returned for Site Item Location Details, Req Number = "+siteID);
rd.forward(request, response);
}
}
每次
转发后
执行一次返回
if (pagePosition != null) {
request.setAttribute("pagePosition", pagePosition);
rd = this.getServletContext().getRequestDispatcher("/jsp/locationDetails.jsp");
rd.forward(request, response);
return;
}
每次
转发后
执行一次返回
if (pagePosition != null) {
request.setAttribute("pagePosition", pagePosition);
rd = this.getServletContext().getRequestDispatcher("/jsp/locationDetails.jsp");
rd.forward(request, response);
return;
}
如果我是问这个问题的人,我会在添加返回语句后立即接受这个答案现在locationAllresults页面正在工作,但locationDetails页面不工作它必须用大写字母L:
“/jsp/locationDetails.jsp”
,因为其他jsp都是大写的?检查它是否可以调用简单的HTML(如jsp)。如果是我问这个问题,我会在添加返回语句后立即接受这个答案。现在locationAllresults页面正在工作,但locationDetails页面不工作必须使用大写字母L:“/jsp/locationDetails.jsp”
其他JSP是否大写?检查它是否可以调用像jsp这样的简单HTML。