一、context values
tapestry默认使用的是context value, 其url类似:http://none.com/edituser/12, 通常是通过page activation来完成的。
在Tapgestry-5.2中,除了可以用:
private User user;
@Inject
private UserDAO dao;
private long userId;
void onActivate(long userId) {
tihs.userId = userId;
user = dao.findById(userId);
}
long onPassivate(){
return userId;
}
来获取userId值以外,还有更简单的方法:
@PageActivationContext
@Property
private User user;
其他代码可以省略了。
二、request parameters
url类似这样:http://none.com/edituser?userId=12
使用方法同样很简单。
先生成这样的pagelink:
View.tml:
<a href="${editlink}">Edit User Meta</a>
View.java
@Property
private User user;
@Inject
private PageRenderLinkSource linkSource;
public Link getEditPageLink()
{
Link link = linkSource.createPageRenderLink(EditUser.class);
link.addParameterValue("userId", user.getId());
return link;
}
EditUser.java
@ActivationRequestParameter("userId")
@Property
private User user;