大家好,我想知道类似这样的一个servicebean如何把报错的message返回到页面?
代码片段如下:
private static final String ERROR = "数据库错误:";
private static final String RETRIEVE_STMT =
"SELECT * FROM Alliance WHERE lyear=? AND season=?";
......
public List<Alliance> retrieveAll() throws AllianceException{
Connection connection = null;
PreparedStatement stmt = null;
ResultSet results = null;
try {
connection = ds.getConnection();
stmt = connection.prepareStatement(RETRIEVE_ALL_STMT);
results = stmt.executeQuery();
List<Alliance> AllianceList = new LinkedList<Alliance>();
while (results.next()) {
League league = new League(results.getInt("lid"),
results.getInt("lyear"),
results.getString("season"),
results.getString("title"));
allianceList.add(alliance);
}
return allianceList;
} catch (SQLException e) {
throw new AllianceException(ERROR + e.getMessage());
} finally {
if (results != null) {
try { results.close(); } catch (SQLException se) { }
}
if (stmt != null) {
try { stmt.close(); } catch (SQLException se) { }
}
if (connection != null) {
try { connection.close(); } catch (SQLException e) { }
}
}
}
如果用ajax传后台数据到前端页面,如何传递这些报错消息?请教。谢谢。
我一般会建一个实体bean,包含status、data、msg分别对应状态、数据、消息,在后台将数据通过set方法封装好,用ajax通过json格式传送至前台,前台可获取全部信息。
当然你也可以用response,不过比较之下个人觉得第一种更合适
java代码
response.setAttribute("allianceList",allianceList)
jsp代码
<%=request.getAttribute("allianceList") %>
//ResultBean(返回结果集)
public class Result implements Serializable{
private static final long serialVersionUID = 1L;
private int status;
private String msg;
private Object data;
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}
就是一个普通的java类,只是在action中把返回的response对象换成Result,
Action eg:
@。。。
@。。。
public Result getCommentByUserId(){
Result result=new Result();
//处理业务逻辑,可以用if else添加不同的消息和数据以及状态。一种状态对应一条消息和一组数据
result.setData("");
result.serMsg("");
result.setStatus();
return result;
}
这样不管你前台是JSP还是Html,都可以在ajax的success方法中通过 response.data来获取那个Result了,当然你也可以在前端加过滤器让它自动显示后台传过来的消息