Java 如何在servlet呈现的JSP中处理这种情况?(如果我有东西要显示,如果我必须打印错误消息)
我是Java Web应用程序开发的新手,基于Servlet的webapp有以下问题 因此,我有一个HttpServlet,用于处理针对URL模式的请求:Java 如何在servlet呈现的JSP中处理这种情况?(如果我有东西要显示,如果我必须打印错误消息),java,jsp,jakarta-ee,servlets,Java,Jsp,Jakarta Ee,Servlets,我是Java Web应用程序开发的新手,基于Servlet的webapp有以下问题 因此,我有一个HttpServlet,用于处理针对URL模式的请求: http://localhost:7001/edi-mon/salwf.do 使用包含显示手风琴菜单的JQuery的JSP页面来呈现这样的视图: 每个accordion节都包含与对象相关的信息,该对象具有类saldetaglio,该类被放入一个数组中,该数组是从放入节中的servlet(使用web服务)检索到的 在呈现此视图(包含一些信息的
http://localhost:7001/edi-mon/salwf.do
使用包含显示手风琴菜单的JQuery的JSP页面来呈现这样的视图:
每个accordion节都包含与对象相关的信息,该对象具有类saldetaglio,该类被放入一个数组中,该数组是从放入节中的servlet(使用web服务)检索到的
在呈现此视图(包含一些信息的表)之前,我的servlet实际上与web服务联系,获取包含web服务响应的Out对象
此Out对象内部包含两个对象,它们是:
public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
LoggerMDC.setup(req, res);
Logger logger = (Logger) Logger.getStdLogger(Monitoraggio.class); // do not declare 'logger' as static field in order to work with MDC
String service = req.getParameter("serv");
String matricola = req.getParameter("matricola");
char serviceId = Utility.getServizio(req.getParameter("serv"));
// Retrieve the web service output:
Out reportSal = getSalReport(matricola,"","");
// The collection that have to be shown in a table inside the JSP view:
SalDettaglio[] salDettaglio = reportSal.getSal();
HttpSession session = req.getSession(false);
session.setAttribute("salDettaglio", salDettaglio);
gotoPage(ConfigurationFactory.getPropertiesPages().getProperty("pagina_salwf"), req, res);
}
正如您在前面的代码中所看到的,首先我检索webservice响应(Out对象),然后从中检索内部saldetaglio[]数组,然后我将该数组放入会话中,以便在JSP页面中使用它来呈现手风琴,方法如下:
<div id="accordion">
<%
for (SalDettaglio salDettaglio : (SalDettaglio[]) request.getSession(false).getAttribute("salDettaglio")) {
%>
<h2>
ACCORDION HEADER
</h2>
<div>
ACCORDION CONTENT
</div>
</div>
手风琴头
手风琴内容
因此,通过这种方式,我将包含与对象相关信息的手风琴菜单显示到saldetaglio[]数组中,但是,通过这种方式,我不考虑进入上一个Out.Esito对象的webservice状态
例如,如果Out.Esito值是KO而不是OK我将有一个空的saldetaglio[]数组,我不必显示手风琴菜单,但我想使用AJAX显示错误消息(例如弹出窗口或类似的东西)
如何处理这种情况
我对这些话题不是很在行,我不知道我的想法是否是一个明智的解决方案
我想我可以做以下几件事:
可能是一个智能解决方案,或者我遗漏了什么?如果您想在jsp页面中显示从servlet发送的错误消息,并在jsp页面中显示它,则代码必须与以下代码类似:
<% if(!request.getAttribute("errorMessage").isEmpty()){
out.println(requet.getAttribute("errorMessage"));
} %>
errorMessage属性必须在将请求发送到jsp页面的servlet中定义,或者如果您使用的是jquery,则可以从servlet中的PrintWriter发送该属性,并编写将显示在jsp文件中的脚本。我希望我的回答能帮助您您的解决方案还可以。将数组和结果状态都放在jsp上。然后根据状态显示表格或错误消息。