JSF托管bean

时间:2011-01-14 10:57:14

标签: jsf jsf-2 javabeans backing-beans

Hy all,

我是所有这一切的新手,这可能是一个愚蠢的问题,但

我有一个托管bean,它有一个属性花 - 字符串,属性列表 - 花束

在xhtml中我有一个h:inputText in witch你应该输入一个花名,当你点击啊:命令按钮时它会调动一个动作#{managedBEan.addFlower},在addFlower中我想添加一个花名来输入用户并在列表中添加---我正在使用啊:表单

但是当我点击按钮时,似乎jsf没有调用属性的set方法,花属性的值为null,就像她被声明一样

谢谢你的sugestions, 亚历

3 个答案:

答案 0 :(得分:1)

豆:

... myBean() {
   Flower flower;

   (...)

   public void addFlower() { }

   //getters and setters for Flower prop.
}

XHTML

<h:inputText value="#{myBean.flower.name}"/>
<h:commandButton action="#{myBean.addFlower}" value="Click me!"/>

这就是你要做的一切。带有get和set的花的实例以及花名称为“value”属性的h:inputText

当您单击该按钮时,键入的值将被放入value中引用的属性中,因此如果您打印flower.name(在addFlower方法中),您将能够看到用户输入。

actionListener也适用,但您需要检查您用于ActionEvent的导入内容。 IDE始终导入java.awt.event.ActionEvent但正确的导航javax.faces.event.ActionEvent ... java.awt不起作用,我猜这就是为什么不调用您的方法。

答案 1 :(得分:0)

您必须声明 actionListener ,如下所示:

<h:commandButton actionListener="#{myBean.addFlower}" . . .

在你的bean中你必须定义addFlower

   public void addFlower(ActionEvent ev)

执行工作。

答案 2 :(得分:0)

标签是否包围输入和按钮?

<h:form>
    <h:inputText value="#{myBean.flower.name}"/>
    <h:commandButton action="#{myBean.addFlower}" value="Click me!"/>
</h:form>

否则将不会发送输入。