创建连接bean和Facelets的ICEfaces应用程序示例

时间:2013-03-30 02:50:36

标签: jsf-2 javabeans facelets icefaces

我是开发Web应用程序的新手,我安装了ICEfaces插件。我找到this tutorial 来学习如何使用它,第一个给出的例子在我的IDE中不起作用。

它是关于教程的最后一部分,它展示了如何在webapp中使用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());
  }
}

项目结构如下:

Project

关键是,在教程中没有给出保存java bean的位置。所以我认为它必须保存在java资源目录中,但我不确定,因为该应用程序不工作。我只是得到一个空白的屏幕。我认为服务器及其配置是有效的,因为我可以删除一些Img或按钮,并在浏览器中查看结果。所以我想我并不真正理解java bean是如何与xhtml文件连接的。我认为它适用于ManagedBean - 属性,但我不确定。

2 个答案:

答案 0 :(得分:0)

我发现,javabeans与xhtml文件中的变量的连接必须在faces-config.xml中以这种形式创建:

<managed-bean>
  <managed-bean-name> [bean-name-of-java-class] </managed-bean-name>
  <managed-bean-class> [fullpath-to-java-file] </managed-bean-class>
  <managed-bean-scope>[scope]</managed-bean-scope>
</managed-bean>

答案 1 :(得分:0)

您可以在此处找到示例代码的完整列表 http://anonsvn.icesoft.org/repo/icefaces3/trunk/icefaces/samples