在Contacts项目中,如果用户输入了一个无效的token进行联系人编辑,应该如何处理,例如,而不是#contactId:12
,输入#contactId:abc
。或者在另一个应用程序中,可能出于安全原因(例如授权),用户没有编辑对象所需的权限,如何通知用户。我试图导航到一个地方,例如InvalidUrlPlace
但不能。我无法从Activity.start()
方法内部导航,使用placeController.goTo()
更新1:
@Override
public void start(AcceptsOneWidget containerWidget, EventBus eventBus)
{
GWT.log("inside start() method");
if (assertValidPlace())
{
containerWidget.setWidget(view);
initialize();
}
}
protected boolean assertValidPlace()
{
if (!place.isValid())
{
GWT.log("going to InvalidUrlPlace");
placeController.goTo(new InvalidUrlPlace());
return false;
}
return true;
}
更新2:
<code>
public class InvalidUrlPlace extends Place
{
private Messages messages = GWT.create(Messages.class);
private InvalidToken invalidToken;
public InvalidUrlPlace()
{
}
public InvalidUrlPlace(InvalidToken invalidToken)
{
this.invalidToken = invalidToken;
}
public InvalidToken getInvalidToken()
{
return invalidToken;
}
public String getMessage()
{
if (invalidToken != null)
return invalidToken.getMessage();
return messages.pageNotFound();
}
@Prefix("invalidUrl")
public static class Tokenizer implements PlaceTokenizer<InvalidUrlPlace>
{
@Override
public InvalidUrlPlace getPlace(String token)
{
return new InvalidUrlPlace();
}
@Override
public String getToken(InvalidUrlPlace place)
{
return "";
}
}
}