Java 在Tapestry'中使用自定义类;贝内迪奥特酒店
我有一个类,主要由Java 在Tapestry'中使用自定义类;贝内迪奥特酒店,java,select,tapestry,Java,Select,Tapestry,我有一个类,主要由Strings和一些Doubles组成,我有一个BeanEditor 但是,我希望向该类添加另一个字段,该字段的类型是我的自定义类,我们称之为Bar public class Foo { private String myString; private Double myDouble; private Bar bar; // getters and setters ... } 该字段的允许值是从数据库中提取的,应显示为select控件
String
s和一些Double
s组成,我有一个BeanEditor
但是,我希望向该类添加另一个字段,该字段的类型是我的自定义类,我们称之为Bar
public class Foo {
private String myString;
private Double myDouble;
private Bar bar;
// getters and setters
...
}
该字段的允许值是从数据库中提取的,应显示为select控件
然而,当我尝试在我的页面中这样做时,就好像myBar
不存在于我的Foo
类中
<beaneditor>
<p:bar>
<div class="t-beaneditor-row">
<label>Bar</label>
<t:select t:id="barSelecter" t:model="barModel" t:value="foo.bar" t:encoder="barEncoder"/>
</div>
</p:bar>
</beaneditor>
酒吧
如何实现所需的效果?您必须将条形属性添加到模型中
例如
您可以为您的类型栏编写自己的“BeanEditor”块
public class Foo {
private String myString;
private Double myDouble;
private Bar bar;
// getters and setters
...
}
就像我为我的旅行社做的那样:
NamedToSelectTourOperatorBlocks.tml:
<t:container xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd" xmlns:p="tapestry:parameter">
<t:block id="editSelectBar">
<t:label for="tourOperatorEdit" />
<t:select
value="prop:NamedDTOSelectTourOperatorEditContext.id"
t:model="tourOperatorIdsModel" t:validate="required"
t:id="tourOperatorEdit" t:blankOption="ALWAYS"
t:blankLabel="message:select.blank.label"
validate="required" />
</t:block>
</t:container>
不要忘记在AdminModule.java
中注册新定义的块:
public static void contributeDefaultDataTypeAnalyzer(final MappedConfiguration<Class<?>, String> configuration) {
...
configuration.add(NamedDTOSelectTourOperator.class, "NamedDTOSelectTourOperator");
...}
public static void contributeDefaultDataTypeAnalyzer(final MappedConfiguration<Class<?>, String> configuration) {
...
configuration.add(NamedDTOSelectTourOperator.class, "NamedDTOSelectTourOperator");
...}
公共静态void contributeDefaultDataTypeAnalyzer(最终映射配置,字符串>配置){
...
添加(NamedDTOSelectTourOperator.class,“NamedDTOSelectTourOperator”);
...}
所以,Tapestry只会识别,顺便说一句,创建bean编辑器行,只针对一些预先确定的类集,如Double
,Integer
,String
,Date
等等?我不是100%确定,但它很可能是由类型是否有编辑块驱动的。也可以贡献(或替代默认值)自定义编辑/显示块。