gpt4 book ai didi

java - Tapestry 5 - 编辑字符串数组列表

转载 作者:行者123 更新时间:2023-11-29 05:23:20 24 4
gpt4 key购买 nike

我有一个 Result 对象(命名为 result),在该对象内部是一个字符串数组列表(命名为 action),以及一些其他值。

我可以创建一个文本区域来编辑 Result 对象的值,如下所示:

<input t:type="TextArea" t:id="feedback" t:value="result.someValue" /> 

这很好用。但是,我想为结果对象中的 ArrayList 中的每个字符串显示一个文本字段

我可以像这样创建一个循环:

<t:loop t:source="result.action" t:value="currentAction" index="indexProp" t:formstate="ITERATION">
${currentAction}
</t:loop>

这会在屏幕上显示所有操作(太棒了,已经完成了一半)。但是我希望这些可以使用 TextField 进行编辑。

我已经尝试了几种方法,但都没有达到我想要的效果。但是,为了帮助解释并作为我尝试过的示例,这就是我所拥有的:

<t:loop t:source="result.action" t:value="currentAction" index="indexProp" t:formstate="ITERATION">
<input t:type="TextField" t:value="result.action.indexProp"/>
</t:loop>

这是行不通的,因为(据我所知)这与 getResult().getAction.getIndexProp 相同。所以我尝试了

<input t:type="TextField" t:value="result.action.${indexProp}"/>

这也不起作用,虽然它显示了正确数量的 TextField,但没有正确链接它们(它们只是在其中说“result.action.0”和“result.action.1”。

非常感谢任何帮助。

最佳答案

这是最直接的选择:

<t:loop t:source="result.action" t:value="currentAction" formState="iteration"> 
<input t:type="TextField" t:value="currentAction"/>
</t:loop>

使用 formState="iteration" 这样 Loop 将在处理表单提交时再次从您的代码中获取编辑后的列表。当然,这个列表应该是完全相同的实例
在呈现表单时使用。表单提交在不同的
从页面渲染请求,所以你要么需要重新获取列表
@Persist 列表或该列表所属的对象。见
LoopF​​ormState 的 JavaDoc 或更多详细信息。

关于java - Tapestry 5 - 编辑字符串数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23756438/

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