TML
<ul class="dropdown-menu">
<li>
<!-- link should return /tracker -->
<t:pagelink page="tracker" data-toggle="dropdown" class="dropdown-toggle disabled">
<span>All Tickets</span>
</t:pagelink>
</li>
<t:loop source="projectList" value="projectP1">
<!-- link should return /tracker/# -->
<li><t:pagelink page="tracker" context="${projectP1.id}">${projectP1.title}</t:pagelink></li>
</t:loop>
</ul>
...
<t:actionlink t:id="followProject">
<t:if test="isUserFollowingProject"> Unfollow</t:if>
<t:if test="!isUserFollowingProject"> Follow</t:if>
</t:actionlink>
爪哇
@Property
private Project project;
...
@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;
}
}
}
@CommitAfter
void onActionFromFollowProject() {
}
所以问题是当我在项目上下文中使用类似../tracker/1
的网址时,我点击了actionlink,它会将我返回到带有/1
上下文的/ tracker主页,其中相反,我希望它返回/tracker/1
,与我点击动作链接时的上下文相同。我怎么能解决这个问题,因为我有两种类型的上下文,一个空的上下文和一个数字?
P.S。我试过以下:
Integer onPassivate() {
return project != null ? project.getId() : null;
}
现在这样可行,当我点击actionlink时返回带tracker/1
的上下文,但是,我的pagelink:
<t:pagelink page="tracker" data-toggle="dropdown" class="dropdown-toggle disabled">
<span>All Tickets</span>
</t:pagelink>
当我添加此tracker/1
方法
/tracker
,而不是onPassivate
更新
我没有使用onPassivate方法。每个其他页面链接通常都有效,期望actionlink为follow / unfollow。所以对于tml中的代码
<t:actionlink t:id="followProject" t:context="tracker/${project?.id}" class="btn btn-default btn-sm btn-default-gradient">
<span class="glyphicon glyphicon-star"></span>
<t:if test="isUserFollowingProject"> Unfollow</t:if>
<t:if test="!isUserFollowingProject"> Follow</t:if>
</t:actionlink>
在开发人员工具中检查我有以下html代码的actionlink元素:
<a class="btn btn-default btn-sm btn-default-gradient active" href="/IssueTracker/tracker.followproject/tracker$002f1"><span class="glyphicon glyphicon-star"></span> Unfollow</a>
这href="/IssueTracker/tracker.followproject/tracker$002f1"
能告诉你什么吗?它仍然让我回到/IssueTracker/tracker
而不是IssueTracker/tracker/#1, 2, 3...
页面。
答案 0 :(得分:1)
您需要告诉链接本身将该项目用作context
参数。这应该可以解决问题:
<t:actionlink t:id="followProject" t:context="project">
<t:if test="isUserFollowingProject"> Unfollow</t:if>
<t:if test="!isUserFollowingProject"> Follow</t:if>
</t:actionlink>
钝化选项会将值添加到链接到此页面的所有链接(就像您所经历的那样)。