我第一次做了一個SQL,zdsql,爲這個項目:在JSF中,如何將參數值形成我的sql到jsf頁面?
create table zdsql(
id integer primary key,
filter varchar(12),
value varchar(12),
descri varchar(12),
standard_number integer,
language varchar(12)
);
insert into zdsql values(1,'zdlj','1','1.rid',1,'en');
insert into zdsql values(2,'zdlj','2','2.ria',1,'en');
接下來,我做了JSF,下面的代碼是我的XHTML maining:
<h:outputLabel value="#{msgs.zdlj}" style="font-weight:bold" />
<p:selectOneMenu id="zdlj1" value="#{zsjBean.zdlj}">
<f:selectItems value="#{zdsqlBean.zdsqls}" var="bll1"
itemLabel="#{bll1.descri}" itemValue="#{bll1.value}" />
</p:selectOneMenu>
的follwing代碼是主要的zdsqlBean:
package bean;
import java.util.List;
import java.util.logging.Level;
import javax.persistence.TypedQuery;
import model.Zdsql;
import util.DBDAO;
public class ZdsqlBean {
private List<Zdsql> zdsqls;
public ZdsqlBean() {
this.genzdljs();
}
public List<Zdsql> getZdsqls() {
System.out.println("zdsqls==");
return zdsqls;
}
public void setZdsqls(List<Zdsql> zdsqls) {
this.zdsqls = zdsqls;
}
public void genzdljs() {
try {
String queryString = "select m from Zdsql m where m.filter = :filter Order by m.id";
TypedQuery<Zdsql> query = DBDAO.getEntityManager().createQuery(
queryString, Zdsql.class);
query.setParameter("filter", "zdlj");
zdsqls = query.getResultList();
} catch (Exception re) {
DBDAO.log("genzdljs() failed", Level.SEVERE, re);
}
}
但是,我仍然沒有得到正確的值。當我運行這個項目時,selectonemenu沒有任何東西,它應該有兩個選擇項,值應該與sql相同。
你在哪裏調用'genzdljs()'函數? – Freak
假設您已經在'faces-config.xml'中添加了ManagedBean映射,因爲您沒有對'ZdsqlBean'類中的ManagedBean進行任何註釋。 – user75ponic
檢查@Polppan說什麼。從這個公寓,檢查你的'genzdljs'方法是否正確加載值。 –