gpt4 book ai didi

java - Tapestry,从循环中获取所选项目

转载 作者:行者123 更新时间:2023-12-01 04:58:40 24 4
gpt4 key购买 nike

我目前正在使用 Apache Tapestry 5.3.6 开展一些项目。我在使用 t:loop 组件时遇到问题。有什么方法可以在循环完成并渲染页面后获取所选项目吗?我需要实现的是:假设我有这样的循环:

<t:loop t:source="itemList" t:value="item">
<t:actionlink id="something" context="item.ID"></t:actionlink>
</t:loop>

这会工作得很好。但是,如果我将此操作链接移动到我自己的组件中,并通过我的参数传递此 ID,如果我单击,我总是会从列表中获取最后一项,而不是单击的项。

<t:loop t:source="itemList" t:value="item">
<t:mycomponent myparameter="item.ID"></t:mycomponent>
</t:loop>

我尝试放置 formState="iteration",并放置 ValueEncoder,但没有任何帮助。请任何人都可以帮助我,并向我展示如何解决此问题,并从列表中获取所选项目。提前致谢

编辑:这是我的组件的代码

public class Ocenjivanje 
{
@Parameter(required=true)
@Property
private int materijalID;

private Materijal materijal;

@Inject
private Session session;

@SessionState
private User user;

@CommitAfter
public Object unesiOcenu(int ocena)
{
Materijal m = (Materijal)session.createCriteria(Materijal.class).add(Restrictions.eq("materijalID", this.materijalID)).list().get(0);
Date d = new Date();
Ocena o = new Ocena();
o.setMaterijal(m);
o.setKorisnikID(this.user.getID());
o.setDatumOcene(d);
o.setOcena(ocena);
session.save(o);
return this;
}

public void onActionFromJedan()
{
unesiOcenu(1);
}

public void onActionFromDva()
{
unesiOcenu(2);
}

public void onActionFromTri()
{
unesiOcenu(3);
}

public void onActionFromCetiri()
{
unesiOcenu(4);
}

public void onActionFromPet()
{
unesiOcenu(5);
}
}

<t:container
xmlns="http://www.w3.org/1999/xhtml"
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd"
xmlns:p="tapestry:parameter">

Oceni sadržaj:
<t:actionlink t:id="jedan">1</t:actionlink>
<t:actionlink t:id="dva">2</t:actionlink>
<t:actionlink t:id="tri">3</t:actionlink>
<t:actionlink t:id="cetiri">4</t:actionlink>
<t:actionlink t:id="pet">5</t:actionlink>

最佳答案

我不太确定您想要实现什么目标,但无论如何,您都不使用在操作链接中传递的上下文,而是使用硬编码的 int。将您的操作链接更改为 <t:actionlink t:id="tri" context="materijalID">3</t:actionlink>并将您的事件处理程序更改为

public void onActionFromJedan(int context) 
{
unesiOcenu(context);
}

关于java - Tapestry,从循环中获取所选项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13683610/

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