我正在使用Jersey学习JAX-RS(又名JSR-311).我已经成功创建了一个Root资源并正在使用参数:
@Path("/hello")
public class HelloWorldResource {
@GET
@Produces("text/html")
public String get(
@QueryParam("name") String name,
@QueryParam("birthDate") Date birthDate) {
// Return a greeting with the name and age
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用,并处理当前语言环境中的任何格式,日期(字符串)构造函数(如YYYY/mm/dd和mm/dd/YYYY)可以理解这种格式.但是,如果我提供的值无效或无法理解,我会得到404响应.
例如:
GET /hello?name=Mark&birthDate=X
404 Not Found
Run Code Online (Sandbox Code Playgroud)
我该如何自定义此行为?也许是一个不同的响应代码(可能是"400 Bad Request")?记录错误怎么样?也许在自定义标题中添加问题描述("错误日期格式")以帮助排除故障?或者返回包含详细信息的完整错误响应以及5xx状态代码?
是否有一种简单的,而不是使用弹簧的方式让RESTeasy返回带有模型的jsp或html页面?我想做一些类似于Spring的ModelAndView,我有一个请求说/ contacts/loomer并让它在jsp模板中返回一个模拟对象.我看到的所有示例都是针对JSON/XML的.我知道在Jersey你可以使用可查看的,但我只需要使用RESTeasy的东西.
谢谢!
我想要这样的东西(但没有春季模式视图):
@POST
@PUT
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.TEXT_HTML)
public ModelAndView saveContactForm(@Form Contact contact)
throws URISyntaxException
{
service.save(contact);
return viewAll();
}
Run Code Online (Sandbox Code Playgroud)