什么是Restlet相当于以下内容 我与泽西岛一起使用的代码片段:
@GET
@Path("{id}")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON,MediaType.TEXT_XML})
public Todo getEntityXMLOrJSON(@PathParam("id") int id)
{
...
}
我的意思是,在使用Restlet框架时,我会执行以下操作:
public class ContactsApplication extends Application {
public Restlet createInboundRoot() {
Router router = new Router(getContext());
router.attach("/contacts/{contactId}", ContactServerResource.class);
return router;
}
}
如何在get方法中检索contactId?
答案 0 :(得分:1)
如果在附加服务器资源时定义路径参数,则可以使用方法getAttribute
在此服务器资源中访问其值,如下所述:
public class ContactServerResource extends ServerResource {
@Get
public Contact getContact() {
String contactId = getAttribute("contactId");
(...)
}
}
您可以注意到您可以将这些元素定义为实例变量。以下代码是服务器资源ContactServerResource
的典型实现:
public class ContactServerResource extends ServerResource {
private Contact contact;
@Override
protected void doInit() throws ResourceException {
String contactId = getAttribute("contactId");
// Load the contact from backend
this.contact = (...)
setExisting(this.contact != null);
}
@Get
public Contact getContact() {
return contact;
}
@Put
public void updateContact(Contact contactToUpdate) {
// Update the contact based on both contactToUpdate
// and contact (that contains the contact id)
}
@Delete
public void deleteContact() {
// Delete the contact based on the variable "contact"
}
}
希望它可以帮到你, 亨利