我有一个页面显示一些客户端的详细信息.我t:loop用来显示一些数据.在t:loop我只是路过source和value.到目前为止,我的页面工作得很好.但是当我尝试提交页面时,它会突然给我一个例外.
"找不到类型java.lang.String到类型[addressUsageValue]的强制可用强制:.........."
下面是示例代码
<t:loop source="addressUsageInfo" value="addressUsageValue">
<tr>
<td>${addressUsageValue?.usage}</td>
<td>${addressUsageValue?.address}</td>
<td>${addressUsageValue?.postCode}</td>
<td>${addressUsageValue?.city}</td>
<td>${addressUsageValue?.country}</td>
</tr>
</t:loop>
Run Code Online (Sandbox Code Playgroud)
我做了一些调查,找到下面的参考.
http://tapestry.apache.org/5.3.3/apidocs/org/apache/tapestry5/corelib/components/Loop.html https://issues.apache.org/jira/browse/TAP5-609
所以我为Loop创建了编码器.下面是示例代码.在下面的toClient()方法中,我随机返回任何值,在toValue()方法中我返回null.
private final ValueEncoder<DtoAddressUsageInfo> addressUssageEncoder =
new ValueEncoder<DtoAddressUsageInfo>() {
public String toClient(DtoAddressUsageInfo value) {
return String.valueOf(value.getUsage());
}
public DtoAddressUsageInfo toValue(String clientValue) {
return null;
}
};
Run Code Online (Sandbox Code Playgroud)
现在我的代码工作正常,我可以提交表单.
我怀疑来了
首先 - 我无法理解为什么在使用循环时需要编码器?如果需要提交表单,那么为什么它不是必需参数?
第二 - 我刚刚实现了没有任何逻辑的编码器.我无法理解在哪里使用toValue()和toClient()方法,目的是什么?
第三 - 当我提交页面为什么表格需要编码器?
| 归档时间: |
|
| 查看次数: |
4596 次 |
| 最近记录: |