我是开发 Web 应用程序的新手,我安装了 ICEfaces 插件。我找到了本教程来学习如何使用它,而第一个给出的示例在我的 IDE 中不起作用。
它是关于教程的最后一部分,它展示了如何在 web 应用程序中使用 dateTimeEntry。所以我按照说明进行操作,使我的 index.xhtml 看起来像这样:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:icecore="http://www.icefaces.org/icefaces/core"
xmlns:ace="http://www.icefaces.org/icefaces/components"
xmlns:ice="http://www.icesoft.com/icefaces/component">
<h:body>
<form>
<ace:dateTimeEntry id="dateTimeEntryId"
value="#{yourBean.selectDateProperty}" timeZone="Canada/Mountain"
pattern="MMM/dd/yyyy" style="width: 729px; " renderAsPopup="true">
</ace:dateTimeEntry><br />
</form>
</h:body>
</html>
我的java bean是这样的:
package org.icefaces.view;
import java.io.Serializable;
import java.util.Date;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.icefaces.ace.event.DateSelectEvent;
@ManagedBean(name= "yourBean")
@ViewScoped
public class YourBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = 5058131064162864510L;
private Date selectDateProperty = new Date(System.currentTimeMillis());
public Date getSelectDateProperty() {
return selectDateProperty;
}
public void setSelectDateProperty(Date selectDateProperty) {
this.selectDateProperty = selectDateProperty;
}
public void dateSelectListener(DateSelectEvent event) {
setSelectDateProperty(event.getDate());
}
}
项目的结构如下所示:
关键是,在教程中没有给出保存 java bean 的位置。所以我认为它必须保存在 java 资源目录中,但我不确定,因为该应用程序不起作用。我只是得到一个空白屏幕。我认为服务器及其配置是有效的,因为我可以删除一些 Img 或按钮并在浏览器中查看结果。所以我想我并没有真正理解 java bean 是如何与 xhtml 文件连接的。我认为它适用于 ManagedBean - 属性,但我不确定。