我知道如何创建ActionErrors,添加一些消息并在JSP页面中显示消息。 我认为ActionError就像一个错误消息列表。以下是我的系统使用威胁错误的方法:
ActionErrors errors = new ActionErrors();
errors.add("customerId", new ActionError("error.customerId.required"));
this.saveErrors(request, errors);
<html:errors />
假设我想在JSP页面中创建错误消息的ArrayList(在Java中)。如何做到这一点 在我的行动中没有任何改变 。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
ArrayList<String> errMessage = new ArrayList<String>();
//foreach (ActionErrors.message as message){
// errMessage.add(message);
//}
%>
</body>
</html>
问候
答案 0 :(得分:4)
如果您将错误保存在request
范围内,例如:
ActionErrors errors = new ActionErrors();
errors.add("usr", new ActionMessage("User required", false));
errors.add("pwd", new ActionMessage("errors.invalid", "Password"));
saveErrors(request, errors);
您可以在JSP中获取错误,以便按以下方式填充数组列表:
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.Iterator"%>
<%@page import="org.apache.struts.Globals"%>
<%@page import="org.apache.struts.action.ActionErrors"%>
<%@page import="org.apache.struts.action.ActionMessage"%>
<%@page import="org.apache.struts.util.MessageResources"%>
<%
ArrayList<String> errMessage = new java.util.ArrayList<String>();
ActionErrors errors = (ActionErrors) request.getAttribute(Globals.ERROR_KEY);
Iterator<ActionMessage> iterator = errors.get();
MessageResources resources = (MessageResources) request.getAttribute(Globals.MESSAGES_KEY);
while (iterator.hasNext()) {
ActionMessage error = iterator.next();
if (error.isResource()) {
errMessage.add(resources.getMessage(error.getKey(), error.getValues()));
} else {
errMessage.add(error.getKey());
}
}
%>
注意:此代码示例使用Struts 1.3.10。