日期:2014-05-18  浏览次数:20619 次

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显示