Java 属性对象未更改值
我有以下Page.tml代码:Java 属性对象未更改值,java,tapestry,Java,Tapestry,我有以下Page.tml代码: <span class="dropdown"> <t:pagelink page="tracker" data-toggle="dropdown" class="dropdown-toggle disabled" style="padding-top: 5px; padding-bottom: 5px;"> <span> <b class="caret"></b&
<span class="dropdown">
<t:pagelink page="tracker" data-toggle="dropdown" class="dropdown-toggle disabled" style="padding-top: 5px; padding-bottom: 5px;">
<span>
<b class="caret"></b>
<t:if test="!project"> All Tickets</t:if>
<t:if test="project"> Project</t:if>
</span>
</t:pagelink>
<ul class="dropdown-menu">
<li>
<t:pagelink page="tracker" data-toggle="dropdown" class="dropdown-toggle disabled">
<span>All Tickets</span>
</t:pagelink>
</li>
<t:loop source="projectList" value="project">
<li><t:pagelink page="tracker" context="${project.id}">${project.title}</t:pagelink></li>
</t:loop>
</ul>
</span>
<t:if test="project">
<span class="path-divider"> > </span>
<strong>
<t:pagelink page="tracker" context="project.id">
<span>${project.title}</span>
</t:pagelink>
</strong>
</t:if>
所有票
项目
-
所有票
- ${project.title}
>
${project.title}
对于我的页面java类:
@Property
@Inject
private ProjectDao projectDao;
@Property
private Project project;
@Property
private List<Project> projectList;
@Property
@Inject
private TicketDao ticketDao;
@Property
private List<Ticket> ticketList;
@PageLoaded
void onPageLoad() {
projectList = projectDao.loadAll();
ticketList = ticketDao.loadAll();
}
void onActivate(Integer contextValue) {
if (contextValue != null) {
project = projectDao.getByID(contextValue);
}
if (project != null) {
List ticketListByProjectID = ticketDao.getTicketsByProjectID(project.getId());
if (!ticketListByProjectID.isEmpty()) {
ticketList = ticketListByProjectID;
}
} else {
ticketList = ticketDao.loadAll();
}
}
@属性
@注入
私人项目;
@财产
私人项目;
@财产
私人清单项目清单;
@财产
@注入
私家票;
@财产
私人名单;
@页面加载
void onPageLoad(){
projectList=projectDao.loadAll();
ticketList=ticketDao.loadAll();
}
激活时无效(整数上下文值){
如果(contextValue!=null){
project=projectDao.getByID(contextValue);
}
如果(项目!=null){
List ticketListByProjectID=ticketDao.getticketsbyprojectd(project.getId());
如果(!ticketListByProjectID.isEmpty()){
ticketList=ticketListByProjectID;
}
}否则{
ticketList=ticketDao.loadAll();
}
}
当我从contextValue中选择时,将object
project
更改为其他对象时出现问题。它在TML中始终是同一个对象(它是循环中最后一个元素的值),但在java代码中,当我打印到控制台时,它正在改变。我做错了什么?您将项目属性用于两个不同的冲突目的——循环变量和所选项。尝试为这两个目的使用不同的变量