jsf里为什么页面中的控件<h:outputText 取不到值
我的代码大致是这样的
1: <managed-bean>
<managed-bean-name> equip </managed-bean-name>
<managed-bean-class>
com.ytyet.computermm.Equip
</managed-bean-class>
<managed-bean-scope> session </managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name> equipbean </managed-bean-name>
<managed-bean-class>
com.ytyet.computermm.EquipBean
</managed-bean-class>
<managed-bean-scope> session </managed-bean-scope>
</managed-bean>
2:页面
计划号 <TD colspan=3> <h:outputText value= "#{equipindxedit.planGroupid} " />
3:后台方法就不贴数据库类了 那个没问题
try {
equipindxedit = new ArrayList();
DBConnect dbc = null;
ResultSet rs = null;
System.out.println( "to DEtail2222 ");
String mcvalue = (String) linkequip.getValue();
System.out.println(formbean == null);
try {
dbc = new DBConnect ();
dbc.prepareStatement( "select planGroupid,projectId,assetId,equipName,equipBrand,equipType,equipCollocate,equipPrice,storeroomTime,bestowUnits,serial,equipState from Equip where assetId = ? ");
dbc.setString(1, mcvalue);
rs = dbc.executeQuery();
while(rs.next()){
String planGroupid = rs.getString( "planGroupid ");
EquipBean equipba = new EquipBean();
equipba.setPlanGroupid(planGroupid);
equipindxedit.add(equipba);
System.out.println(equipba.getPlanGroupid());
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return "toEquipEdit ";
}
为什么把对象equipba放入list里 页面用控件datatable就能显示出数据,而换成 <h:inputtext或者 <h:inputtext就不行呢? 我哪里有错?请来帮帮我
------解决方案--------------------用datatable有方法可存数据,在页面显示
------解决方案-------------------- <h:outputText value= "#{equipindxedit.planGroupid} " />
bean类名错了,改为 <h:outputText value= "#{equip.planGroupid} " />
------解决方案--------------------在JSF中, <h:outputText value= "#{equipbean.planGroupid} " /> ,
它访问的equipbean是JSF自己创建的,
而不是你通过EquipBean equipba = new EquipBean();来创建的,
所以你在程序中用的equipba是不能被JSF的页面访问到的。
解决方法,你可以在com.ytyet.computermm.Equip类中增加一个方法,
如叫做public EquipBean getBean(){},
在其中返回你在searchEditEquip方法中new的那个EquipBean实例,
在页面上用 <h:outputText value= "#{equip.bean.planGroupid} " />
------解决方案--------------------dataTable接收的数据是ResultSet数据集,你的outputtext接收的数据是字符串,你应该把resultSet里的数据取出来再用outputtext显示