Tôi có một Trang hiển thị chi tiết của một số Khách hàng. Tôi đang sử dụng t:loop
để hiển thị một số dữ liệu. Trong t:loop
Tôi chỉ đang đi qua source
và value
. Cho đến nay rất tốt, trang của tôi đang hoạt động tốt. Nhưng khi tôi cố gắng gửi trang nó đột nhiên cho tôi Ngoại lệ.Bộ mã hóa với thành phần <t:loop> trong Tapestry
“Không thể tìm thấy một sự ép buộc từ loại java.lang.String gõ [addressUsageValue] coercions sẵn:. .........”
Dưới đây là các mẫu mã
<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>
Tôi đã làm một số goggling và tìm thấy dưới đây tài liệu tham khảo.
http://tapestry.apache.org/5.3.3/apidocs/org/apache/tapestry5/corelib/components/Loop.html https://issues.apache.org/jira/browse/TAP5-609
Vì vậy, tôi đã tạo ra bộ mã hóa cho Loop. Dưới đây là mã mẫu. Ở bên dưới phương thức toClient()
Tôi đã trả về ngẫu nhiên bất kỳ giá trị nào và trong phương thức toValue()
Tôi trả về giá trị rỗng.
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;
}
};
Bây giờ mã của tôi đang hoạt động tốt và tôi có thể gửi biểu mẫu.
đây nghi ngờ của tôi đến
Đệ Nhất - Tôi không thể hiểu tại sao bộ mã hóa là cần thiết khi sử dụng vòng lặp ?? Và nếu nó được yêu cầu để gửi biểu mẫu thì tại sao nó không phải là tham số bắt buộc ??
Thứ hai - Tôi vừa triển khai Bộ mã hóa mà không có bất kỳ logic nào. Tôi không thể hiểu được phương thức toValue() và toClient() được sử dụng và mục đích là gì?
Thứ ba - khi tôi gửi Trang tại sao biểu mẫu yêu cầu Bộ mã hóa ??
cảm ơn rất nhiều @Henning. Tôi đạt được rồi :) –