2015-06-08 2 views
1

Я следующий 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> 
      <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> 

И для моей страницы 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(); 
    } 
} 

У меня есть проблема, чтобы изменить объект project к какой-либо другой, когда я выбираю из contextValue. Это всегда один и тот же объект в TML (это значение последнего элемента в цикле), но в java-коде он меняется при печати на консоль. Что я делаю неправильно?

ответ

1

Вы используете свойство проекта для двух разных конфликтующих целей - переменной цикла и выбранного элемента. Попробуйте использовать разные переменные для этих двух целей.

Смежные вопросы