もう一つ大きな問題があります。コンポーネント、ゾーン、およびゾーンをリフレッシュするフォームがあります。コンポーネントをループ内に配置すると、最後のゾーンのみが表示されます。ゾーンごとに一意の ID を生成しました。ページ ソースでは、すべてのゾーンが正しい ID を取得していることがわかりますが、送信時に正しく返されません。IDでゾーンを返す方法はありますか?
これが私のコードです:
<details>
<summary>Comments</summary><br />
<t:zone t:id="commentZone" id="prop:zoneId">
<t:commentlist materijalID="materijalID"></t:commentlist><br />
</t:zone>
<t:form t:id="komentar" t:context="materijalID" t:zone="prop:zoneId">
<t:textarea t:value="comment" rows="6" cols="40"></t:textarea><br />
<input type="submit" value="Add comment"/>
</t:form>
</details>
public class Comments
{
@Parameter(required=true)
@Property
private int materijalID;
@SessionState
@Property
private User user;
@Inject
private Session session;
@Property
private String comment;
@InjectComponent
private Zone commentZone;
@CommitAfter
public Object onSuccessFromKomentar(int materijalID)
{
Komentar k = new Komentar();
Date d = new Date();
Materijal m = (Materijal)session
.createCriteria(Materijal.class)
.add(Restrictions.eq("materijalID", materijalID))
.list()
.get(0);
k.setMaterijal(m);
k.setKorisnikID(this.user.getID());
k.setDatumUnosa(d);
k.setDatumModifikacije(d);
k.setKomentar(this.comment);
session.save(k);
this.comment = "";
return this.commentZone.getBody();
}
public String getZoneId()
{
return "Zone_" + this.materijalID;
}
}
前もって感謝します