1
回答
jax-rs实现rest风格 怎么像spring mvc一样 表单用一个对象接收,谢谢!

@POST

@Path("{userId}/{email:.+@.+\\.[a-z]+}")

@Produces({MediaType.APPLICATION_JSON})

@Consumes(MediaType.APPLICATION_JSON)

public String pathReg(@PathParam("userId") String userId,@PathParam("email") String email,UserDto user){

Map<String,String> userMap = new HashMap<String,String>();

userMap.put("userId", userId);

userMap.put("email", email);

userMap.put("name", user.getName());

userMap.put("id", user.getId());

userMap.put("user", user.getName());

return JSONObject.fromObject(userMap).toString();

}

举报
Bingye
发帖于3年前 1回/734阅
共有1个答案 最后回答: 3年前

声明@Provider注解的实体Provider

// 标记为实体Provider
@Provider
// 标记该读取器匹配的Mime类型
@Produces("application/json")
public class EchoReader implements MessageBodyReader<EchoReader> {

	@Override
	public boolean isReadable(Class<?> type, Type genericType, Annotation[] annotition, MediaType mediaType) {
	// 是否可以读该请求
		...
	}

	@Override
	public EchoReader readFrom(Class<EchoReader> type, Type genericType, Annotation[] annotition, MediaType mediaType,
			MultivaluedMap<String, String> map, InputStream in) throws IOException, WebApplicationException {
		// 解析请求, 返回实例
		...
	}
}
另外,JAX-RS实现一般自带包含了JSON和XML(使用JAXB)与对象的转换,需要请求指定Accept请求头为对应类型(text/xml, application/json等)

顶部