gpt4 book ai didi

java - 在servlet中调用java类

转载 作者:行者123 更新时间:2023-12-02 08:32:26 25 4
gpt4 key购买 nike

在我的servlet中,我调用了一个class.java(一个构造html表的类)的实例,以便在我的jsp中创建这个表。

servlet 如下所示:

String report=request.getParameter("selrep");
String datev=request.getParameter("datepicker");
String op=request.getParameter("operator");
String batch =request.getParameter("selbatch");

System.out.println("report kind was:"+report);
System.out.println("date was:"+datev);
System.out.println("operator:"+op);
System.out.println("batch:"+batch);


if(report.equalsIgnoreCase("Report Denied"))
{
DeniedReportDisplay rd = new DeniedReportDisplay();
rd.ConstruireReport();
}
else if(report.equalsIgnoreCase("Report Locked"))
{
LockedReportDisplay rl = new LockedReportDisplay();
rl.ConstruireReport();
}

request.getRequestDispatcher("EspaceValidation.jsp").forward(request, response);

在我的jsp中,即使是空的或满的,我也无法显示该表。

注意:构造拒绝报告的类示例具有以下结构:

   /*constructeur*/
public DeniedReportDisplay() {}

/*Methodes*/

@SuppressWarnings("unchecked")

public StringBuffer ConstruireReport()

{
StringBuffer retour=new StringBuffer();
int i = 0;
retour.append("<table border = 1 width=900 id=sheet align=left>");
retour.append("<tr bgcolor=#0099FF>" );
retour.append("<label> Denied Report</label>");
retour.append("</tr>");
retour.append("<tr>");

String[] nomCols ={"Nom","Prenom","trackingDate","activity","projectcode","WAName","taskCode","timeSpent","PercentTaskComplete","Comment"};
//String HQL_QUERY = null;
for(i=0;i< nomCols.length;i++)
{
retour.append(("<td bgcolor=#0066CC>")+ nomCols[i] + "</td>");

}
retour.append("</tr>");

retour.append("<tr>");

try {

s= HibernateUtil.currentSession();
tx=s.beginTransaction();
Query query = s.createQuery("select opcemployees.Nom,opcemployees.Prenom,dailytimesheet.TrackingDate,dailytimesheet.Activity," +
"dailytimesheet.ProjectCode,dailytimesheet.WAName,dailytimesheet.TaskCode," +
"dailytimesheet.TimeSpent,dailytimesheet.PercentTaskComplete from Opcemployees opcemployees,Dailytimesheet dailytimesheet " +
"where opcemployees.Matricule=dailytimesheet.Matricule and dailytimesheet.Etat=3 " +
"group by opcemployees.Nom,opcemployees.Prenom" );


for(Iterator it=query.iterate();it.hasNext();)
{
if(it.hasNext()){

Object[] row = (Object[]) it.next();


retour.append("<td>" +row [0]+ "</td>");//Nom
retour.append("<td>" + row [1] + "</td>");//Prenom
retour.append("<td>" + row [2] + "</td>");//trackingdate
retour.append("<td>" + row [3]+ "</td>");//activity
retour.append("<td>" + row [4] +"</td>");//projectcode
retour.append("<td>" + row [5]+ "</td>");//waname
retour.append("<td>" + row [6] + "</td>");//taskcode
retour.append("<td>" + row [7] + "</td>");//timespent
retour.append("<td>" + row [8] + "</td>");//perecnttaskcomplete
retour.append("<td><input type=text /></td>");//case de commentaire
}
retour.append("</tr>");


}
//terminer la table.
retour.append ("</table>");

tx.commit();


} catch (HibernateException e)
{
retour.append ("</table><H1>ERREUR:</H1>" +e.getMessage());
e.printStackTrace();
}

return retour;
}

感谢您的帮助。

最佳答案

1) DeniedReportDisplay 和 LockedReportDisplay 的实例是在本地创建的,一旦在 if..else block 之外就无法引用它们。

2) 调用的方法 ( rd.ConstruireReport() ) 返回一个 StringBuffer,您应该将其存储在某个地方。尝试使用 Response.getWriter() 并将所有响应字符串放入此编写器中。

3)建议你找一些关于如何设计Servlet/JSP的好的教程书籍,你尝试构建的解决方案相当糟糕。

关于java - 在servlet中调用java类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2950594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com