1

大家好,

我对这一切都很陌生,这可能是一个愚蠢的问题,但是

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

在 xhtml 中,我有一个 h:inputText,你应该输入一个花名,当你点击 ah:command 按钮时,它会调用一个动作#{managedBEan.addFlower},在 addFlower 中我想添加用户输入的花名和添加到列表中 --- 我正在使用 ah:form

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

谢谢你的建议,亚历克斯

4

3 回答 3

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 的花实例以及一个h:inputText带有“value”属性中的花名的实例。

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

actionListener也可以,但你需要检查你正在使用的导入ActionEvent。IDE 总是导入java.awt.event.ActionEvent,但正确的是javax.faces.event.ActionEvent......java.awt不起作用,我想这就是为什么不调用你的方法的原因。

于 2011-01-14T11:36:10.507 回答
0

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

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

否则输入将不会被发送。

于 2011-01-14T23:02:38.640 回答
0

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

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

在你的 bean 中你必须定义 addFlower

   public void addFlower(ActionEvent ev)

执行这项工作。

于 2011-01-14T11:03:13.413 回答