java - 如何引用Java中BeanEditForm(tapestry5)中使用的bean的属性?

标签 java selection tapestry

我的 .tml 文件中有这样的内容:

<t:beaneditform t:id="adForm" object="editableAd"
                        reorder="actiontype,shops,movies,streams,widgets" ....

我的问题是如何访问(引用)actionType,它是 .java 文件中的枚举(实际上是 SELECT)?我只需要在用户更改此选择(下拉列表)的值时处理事件,显然是在提交表单本身之前。

如果这样的事情对我有用......

@OnEvent(component = "adForm.actionType", value=EventConstants.VALUE_CHANGED)
    public void actionTypeValueChanged(String value) {
      log.info("value is: " + value);
    }

最佳答案

要使用客户端 Select html 组件中更改的值进行更新,请在模板文件中包含一个带有 t:zone 属性的 Tapestry 选择组件 (即,在您的情况下,它可以指向任何虚拟区域,仅当您需要在值更改时更新区域时才需要正确设置)

同时将t:value属性设置为页面\组件java文件中的枚举变量,通常该变量将使用tapestry的@Property进行注释。

示例:

<t:select t:id="myEnumVariable" t:zone="dummyZone" t:value="myEnumVariable"/>

myEnumVariable 用于引用类的变量并充当 ID(即实际字符串 myEnumVariable 用作 id),这是不必要的,但这样更具可读性和可维护性)

public class MyClass{
    @Property
    private MyEnum myEnumVariable;

    @OnEvent(component = "myEnumVariable", value=EventConstants.VALUE_CHANGED)
    public void actionTypeValueChanged(**MyEnum** newValue) {
        this.myEnumVariable = newValue; // <<<<<<
        log.info("value is: " + myEnumVariable );
    }
}

关于java - 如何引用Java中BeanEditForm(tapestry5)中使用的bean的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14755531/

相关文章:

java - 强制所有 session 注销

objective-c - 在 UITableView 初始化中设置选定的单元格

java - 选择排序递归调用

java - 从后台线程更新适配器

Java 启动应用程序 [WINDOWS]

javascript - 单击切换回第一个选项

java - 如何使用带有字符串参数的 Tapestry 组件?

java - 渲染 Tapestry 页面并将其作为 Stream/String 资源获取

java - Producer/Consumer : One Producer, 多个消费者,每个都处理相同的数据

java - 匹配一组字符串的正则表达式