这个问题与此有关。但是由于我还没有解决这个问题,所以我想重申一下我的问题。我使用 Java Jersey REST API 作为我的后端 Web 服务。客户端是一个简单的 Web 表单 HTML 页面。基本上我想要的是:如果用户提交了一个 web 表单并且由于违反数据库唯一约束而导致了一些错误,我希望用户看到一条错误消息与表单中的 id 字段一起显示,例如“ID 已经存在! ”。Web 表单是一个简单的 form.html:
<form action="/myapp/rest/customer/created" method="POST">
<table border="1">
<tr>
<td>Customer name:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>Customer ID:</td>
<td><input type="text" name="id"></td>
</tr>
<tr>
<td>Customer DOB:</td>
<td><input type="text" name="dob"></td>
</tr>
</table>
<br/>
<input type="submit" value="Submit">
</form>
如果发生错误,如何将错误信息从 Jersey API 传递到客户端?我与此表单提交相关的服务器端 POST 调用如下:
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Path("created")
public Response createCustomer(@FormParam("id") int id,
@FormParam("name") String name, @FormParam("dob") Date dob)
throws ServletException, IOException {
URI uri = URI.create(uriInfo.getPath());
Response r;
r = Response.created(uri).build();
try {
dbController.create(id, name, dob); //This may throw exception.
} catch (DataAccessException ex) {
//To do: How to pass the error message to the client-side UI via e.g., Ajax?
}
return r;
}