jsf里为什么页面中的控件

netboygg 2007-05-10 11:35:15
我的代码大致是这样的
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就不行呢? 我哪里有错?请来帮帮我
...全文
978 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
netboygg 2007-05-12
  • 打赏
  • 举报
回复
equipindxedit = new ArrayList();
datatable取的值不是ResultSet而是list.
String planGroupid = rs.getString("planGroupid");
quipBean equipba = new EquipBean();
equipba.setPlanGroupid(planGroupid);
equipindxedit.add(equipba);
通过上面把对象加入到list中.datatable可以取到.
应该就是JSF页面访问不到new出来的新对象.所以无法显示出来.如果对象一直都在.那么一定能访问或设置到属性.比如说添加数据的时候.
morningbzy 2007-05-11
  • 打赏
  • 举报
回复
在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}" />
netboygg 2007-05-11
  • 打赏
  • 举报
回复
一共是2个页面 第一个页面是通过点击其中datatable里的一列取得其值,然后跳转到第2个页面.第2个页面中主要由<h:inputtext/>控件取值.第2个页面换成<h:datatable/>的话就有显示的.
第一个页面:
<t:column style="text-align: center"> <f:facet name="header"> <h:outputText value="固定资产号" /> </f:facet> <h:commandLink id="toequipDetail" value="#{data.assetId}" action="#{equip.searchEditEquip}"> </h:commandLink> </t:column>
第2个页面:
<h:outputText value="#{equipbean.planGroupid}" />
2个页面共用2个类一个实体类一个业务类.equipbean是实体类.equip是业务类.
public String searchEditEquip() throws Exception
{
System.out.println("查询设备内容修改");

FacesContext facesContext = FacesContext.getCurrentInstance();
UIViewRoot root = facesContext.getViewRoot();

try {
System.out.println("get form value");

UICommand linkequip = (UICommand) (root.findComponent("searchEquipeditForm").findComponent("editequiptb").findComponent("toequipDetail"));

System.out.println("get form value22222222");



equipindxedit = new ArrayList();

DBConnect dbc = null;
ResultSet rs = null;
System.out.println("to DEtail2222");

String mcvalue = (String) linkequip.getValue();
//Date nianduvalue = (Date)linkniandu.getValue();


EquipBean formbean = (EquipBean) BeanUtil.getBean("equipbean");

System.out.println(mcvalue);
//System.out.println(nianduvalue);

System.out.println(formbean == null);
try {
System.out.println("ssssssssssssssssssssssssss");
dbc = new DBConnect ();
dbc.prepareStatement("select planGroupid,projectId,assetId,equipName,equipBrand,equipType,equipCollocate,equipPrice,storeroomTime,bestowUnits,serial,equipState from Equip where assetId = ? ");
//String ss = dbc.getPreparedStatement();

System.out.println(dbc.getPreparedStatement().toString());
System.out.println("ddddddddddddddddddddddddddddddd");
dbc.setString(1, mcvalue);
//dbc.setDate(2, (java.sql.Date) nianduvalue);

rs = dbc.executeQuery();

while(rs.next()){


String planGroupid = rs.getString("planGroupid");
String projectId = rs.getString("projectId");
String assetId = rs.getString("assetId");
String equipName = rs.getString("equipName");
String equipBrand = rs.getString("equipBrand");
String equipType = rs.getString("equipType");
String equipCollocate = rs.getString("equipCollocate");
String equipPrice = rs.getString("equipPrice");
Date storeroomTime = rs.getDate("storeroomTime");
String bestowUnits = rs.getString("bestowUnits");
String serial = rs.getString("serial");
String equipState = rs.getString("equipState");


EquipBean equipba = new EquipBean();

equipba.setPlanGroupid(planGroupid);
equipba.setProjectId(projectId);
equipba.setAssetId(assetId);
equipba.setEquipName(equipName);
equipba.setEquipBrand(equipBrand);
equipba.setEquipType(equipType);
equipba.setEquipCollocate(equipCollocate);
equipba.setEquipPrice(equipPrice);
equipba.setStoreroomTime(storeroomTime);
equipba.setBestowUnits(bestowUnits);
equipba.setSerial(serial);
equipba.setEquipState(equipState);

equipindxedit.add(equipba);

System.out.println(equipba.getPlanGroupid());
System.out.println(equipba.getEquipName());
System.out.println(equipba.getAssetId());

}

} catch (Exception e) {
e.printStackTrace();
}

} catch (Exception e) {
e.printStackTrace();
}
return "toEquipEdit";
}
hornbilltofy 2007-05-11
  • 打赏
  • 举报
回复
把相关的东西都贴出来,不然让我们怎么判断?
tang2755 2007-05-11
  • 打赏
  • 举报
回复
dataTable接收的数据是ResultSet数据集,你的outputtext接收的数据是字符串,你应该把resultSet里的数据取出来再用outputtext显示
netboygg 2007-05-11
  • 打赏
  • 举报
回复
请问 在public EquipBean getBean(){}方法中 我该怎么取到new 出来的对象equipba,
那为什么 我第2个页面换成datatable就可以取到数据,<h:outputtext/>不能同datatable一样能取list吗?
netboygg 2007-05-10
  • 打赏
  • 举报
回复
<h:outputText value="#{equip.planGroupid}" />

对不起 贴错了 应该为<h:outputText value="#{equipbean.planGroupid}" />

属性在实体类里,但是还是出不来.
hornbilltofy 2007-05-10
  • 打赏
  • 举报
回复
<h:outputText value="#{equipindxedit.planGroupid}" />
bean类名错了,改为<h:outputText value="#{equip.planGroupid}" />

netboygg 2007-05-10
  • 打赏
  • 举报
回复
datatable标签可以取到 但是我想做成单条数据浏览显示的 所以就想用其他的标签来显示.
chinaxp1212 2007-05-10
  • 打赏
  • 举报
回复
用datatable有方法可存数据,在页面显示
netboygg 2007-05-10
  • 打赏
  • 举报
回复
控件<h:outputtext/>不能只显示单个属性吗?要怎么样才能让他们显示数据.?
 JSF2.xdatatable分页控件与左侧菜单最简单应用   JSF2.x,功能强大,使用方便。全世界使用JSF的人越来越多。而且也有很多很好的控件给发出来了,如:richfaces、primefaces、myfaces等,就日前来讲primefaces功能很强大,控件很多,但有一点不好就是不支持IE6,特别是下拉列表,p:dialog等,其它的分页p:datatable实际使用起来总有不如意的地方。richfaces还支持可视化开发,可惜就是控件开发进度相比其它的慢了很多。下面帖我的控件的使用方法:   下载地址:http://download.csdn.net/detail/ptianfeng/4802713 一、分页具体使用方法如下(不多说,直接给你些颜色看看): 1. xhtml文件:    <html xmlns:ems="http://www.ems.com.cn" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"> outputText value="" /> outputText value="#{var.sqlid}" /> 2. 相应的Managedbean: [java] view plaincopy /** * EMS 11185 限时未达邮费奉还 * @author 螃蟹 */ @SuppressWarnings(value = "serial") @ManagedBean(name = "userlogMBean") @ViewScoped() public class UserlogMBean extends PageListBaseBean implements Serializable { public PagedListDataModel getDefaultDataModel() { if (defaultDataModel == null) { defaultDataModel = new PagedListDataModel(pageSize) { public DataPage fetchPage(int startRow, int pageSize) { ArrayList dataList = new ArrayList(); List list = dao.getObjectList(jpql, pageSize, startRow); if (list != null) { for (Userlog u : list) { UserlogVo vo = new UserlogVo(); vo.setSqlid(u.getSqlid()); vo.setCode(u.getCode()); vo.setDate(u.getDate()); vo.setStation(u.getStation()); vo.setUserid(u.getUserid()); vo.setText(u.getText()); dataList.add(vo); } } int size = dao.getCountOption(jpql); DataPage dataPage = new DataPage(size, startRow, dataList); return dataPage; } }; } return defaultDataModel; } } 提示:关于PageListBaseBean更多的信息,可以参阅我在百度的blog(百度改版后,让我很QF,所以转到CSDN来了): http://hi.baidu.com/kittopang/item/19af4e37c6ede2fae6bb7a11   至此,分页已经实现。下面是使用截图:
使用帮助:http://blog.csdn.net/ptianfeng/article/details/8217176 JSF2.xdatatable分页控件与左侧菜单最简单应用   JSF2.x,功能强大,使用方便。全世界使用JSF的人越来越多。而且也有很多很好的控件给发出来了,如:richfaces、primefaces、myfaces等,就日前来讲primefaces功能很强大,控件很多,但有一点不好就是不支持IE6,特别是下拉列表,p:dialog等,其它的分页p:datatable实际使用起来总有不如意的地方。richfaces还支持可视化开发,可惜就是控件开发进度相比其它的慢了很多。下面帖我的控件的使用方法: 一、分页具体使用方法如下(不多说,直接给你些颜色看看): 1. xhtml文件:    <html xmlns:ems="http://www.ems.com.cn" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets"> 2. 相应的Managedbean: [java] view plaincopy /** * EMS 11185 限时未达邮费奉还 * @author 螃蟹 */ @SuppressWarnings(value = "serial") @ManagedBean(name = "userlogMBean") @ViewScoped() public class UserlogMBean extends PageListBaseBean implements Serializable { public PagedListDataModel getDefaultDataModel() { if (defaultDataModel == null) { defaultDataModel = new PagedListDataModel(pageSize) { public DataPage fetchPage(int startRow, int pageSize) { ArrayList dataList = new ArrayList(); List list = dao.getObjectList(jpql, pageSize, startRow); if (list != null) { for (Userlog u : list) { UserlogVo vo = new UserlogVo();

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧