gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 14:52:03 24 4
gpt4 key购买 nike

我的 .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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com