在JSP中显示由SQL请求生成的表
我有一个JSP页面,其中有一个包含不同城市的下拉列表,当我选择城市时,我希望显示SQL请求的结果,这是一个包含多个列的表 下拉列表工作正常,但问题是我无法在JSP中显示该表。我得到了一个错误:在JSP中显示由SQL请求生成的表,sql,jsp,jakarta-ee,servlets,Sql,Jsp,Jakarta Ee,Servlets,我有一个JSP页面,其中有一个包含不同城市的下拉列表,当我选择城市时,我希望显示SQL请求的结果,这是一个包含多个列的表 下拉列表工作正常,但问题是我无法在JSP中显示该表。我得到了一个错误: java.lang.IllegalStateException:节点没有数据类型:org.hibernate.hql.internal.ast.tree.IdentNode +-[IDENT]IdentNode:'idDomaine'{originalText=idDomaine} Projet类与che
java.lang.IllegalStateException:节点没有数据类型:org.hibernate.hql.internal.ast.tree.IdentNode
+-[IDENT]IdentNode:'idDomaine'{originalText=idDomaine}
Projet类与chefprojet和domaine之间存在多对一关系
Projet.java
包装豆
导入java.util.HashSet;
导入java.util.Set
公共类Projet实现java.io.Serializable{
private static final long serialVersionUID = 1L;
public int id;
private String libelle;
private String site;
private String finalite;
private String date_actuelle;
private String date_debut;
private String date_previsionnelle;
private Domaine domaine;
private Set <Acteur> assignedActeurs = new HashSet<Acteur>(0);
private Set <Bénéficiaire> assignedBénéficiaires = new HashSet<Bénéficiaire>(0);
private Chefprojet chefprojet;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLibelle() {
return libelle;
}
public void setLibelle(String libelle) {
this.libelle = libelle;
}
public String getSite() {
return site;
}
public void setSite(String site) {
this.site = site;
}
public String getFinalite() {
return finalite;
}
public void setFinalite(String finalite) {
this.finalite = finalite;
}
public String getDate_actuelle() {
return date_actuelle;
}
public void setDate_actuelle(String date_actuelle) {
this.date_actuelle = date_actuelle;
}
public String getDate_debut() {
return date_debut;
}
public void setDate_debut(String date_debut) {
this.date_debut = date_debut;
}
public String getDate_previsionnelle() {
return date_previsionnelle;
}
public void setDate_previsionnelle(String date_previsionnelle) {
this.date_previsionnelle = date_previsionnelle;
}
public Domaine getDomaine() {
return domaine;
}
public void setDomaine(Domaine domaine) {
this.domaine = domaine;
}
public Set<Acteur> getAssignedActeurs() {
return assignedActeurs;
}
public void setAssignedActeurs(Set<Acteur> assignedActeurs) {
this.assignedActeurs = assignedActeurs;
}
public Set<Bénéficiaire> getAssignedBénéficiaires() {
return assignedBénéficiaires;
}
public void setAssignedBénéficiaires(Set<Bénéficiaire> assignedBénéficiaires) {
this.assignedBénéficiaires = assignedBénéficiaires;
}
public Chefprojet getChefprojet() {
return chefprojet;
}
public void setChefprojet(Chefprojet chefprojet) {
this.chefprojet = chefprojet;
}
public Projet() {
super();
// TODO Auto-generated constructor stub
}
public Projet(String libelle, String site, String finalite,
String date_actuelle, String date_debut,
String date_previsionnelle, Domaine domaine, Chefprojet chefprojet) {
super();
this.libelle = libelle;
this.site = site;
this.finalite = finalite;
this.date_actuelle = date_actuelle;
this.date_debut = date_debut;
this.date_previsionnelle = date_previsionnelle;
this.domaine = domaine;
this.chefprojet = chefprojet;
}
我真的需要你的帮助!!你正在从实体
Projet
中选择idDomaine
。但是这个实体没有任何idDomaine
属性
你真的,真的需要学习HQL如何工作,以及如何使用查询参数。你的代码容易受到HQL注入攻击
查询应该是
List<Projet> list =
session1.createQuery("select p from Projet p where p.site = :site")
.setString("site", selected)
.list();
列表=
会话1.createQuery(“从Projet p中选择p,其中p.site=:site”)
.setString(“站点”,已选定)
.list();
顺便说一句,您还应该学习使用JSPEL和JSTL,并避免使用Scriptlet。您的JSP可抵御XSS攻击
你应该使用
<c:out value="${projet.site}"/>
而不是
<%=projet.getSite()%>
(当然,对每个属性都要这样做)。我的问题是如何在jsp中显示idDomaine和idchefprojet的值。代码不起作用,因为我在jsp中调用了Domaine,它是一个对象而不是字符串。我不知道如何面对这个问题。
,它将调用projet.getDomaine().getId()
。谢谢!它工作正常,没有错误,但仍然有一个小问题,我正在显示的表是空的!这可能意味着所选站点没有Projet。使用调试器,检查站点的值,检查数据库。我检查了我的数据库,那里有Projet。我得到的表是空的,但有行数等于所选站点的Projet数。因此,请求成功,我只是在显示时遇到问题。
List<Projet> list =
session1.createQuery("select p from Projet p where p.site = :site")
.setString("site", selected)
.list();
<c:out value="${projet.site}"/>
<%=projet.getSite()%>