我是新手Google AppEngine程序员,所以请原谅我的无知xD
我使用的是Slim3 MVC框架,所以我用Java编码。
我有一个视图中显示的对象列表,我想通过单击应用程序链接来编辑单个对象。我提供了一个带有相关视图的编辑控制器,我以这种方式将密钥传递给控制器:
索引.jsp [提取](列出所有对象的视图):
<c:forEach var="tweet" items="${tweetList}">
...
<a href="edit?key=${f:h(tweet.key)}">edit</a>
...
</c:forEach>
编辑控制器:
public class EditController extends Controller {
@Override
public Navigation run() throws Exception {
Key tweetKey = asKey("key");
return forward("edit.jsp");
}
}
在控制器中,我可以通过以下方式从 url 中检索密钥
Key tweetKey = asKey("key");
但是之后我能做些什么来传递这个键来查看(编辑视图)并准确显示我想要的对象(在检索到的键处分配)?
我回答自己:
我的控制器.java [摘录]
public class MyController extends Controller {
private MyService service = new MyService();
@Override
public Navigation run() throws Exception {
Key myKey = asKey("key");
MyObject myObject = service.getObject(myKey);
requestScope("myObject", myObject);
return forward("edit.jsp");
}
}
编辑.jsp [摘录]
...
<p>myObject properties:</p>
prop1: ${f:h(myObject.prop1)}<br />
prop2: ${f:h(myObject.prop2)}<br />
...
tnx MASSIMILIANO.对于需要更多详细信息的人:
编辑服务.java
...
private MyObjectMeta n = new MyObjectMeta();
public news getObject(Key myKey) {
// TODO Auto-generated method stub
return Datastore.get(n, myKey);
}
...