我正在尝试在 Struts 中创建一个登录页面。这个想法是验证用户是否存在等,然后如果有错误,则返回登录页面,错误为红色(典型登录或任何表单页面验证)。
我想知道是否有人知道 Struts 中的错误管理教程。我正在寻找专门的教程(或示例)
<html:errors>
标签,我认为这可以解决我的问题。
我正在尝试在 Struts 中创建一个登录页面。这个想法是验证用户是否存在等,然后如果有错误,则返回登录页面,错误为红色(典型登录或任何表单页面验证)。
我想知道是否有人知道 Struts 中的错误管理教程。我正在寻找专门的教程(或示例)
<html:errors>
标签,我认为这可以解决我的问题。
这是一个://struts.apache.org/1.3.5/struts-taglib/apidocs/org/apache/struts/taglib/html/package-summary.html#package_description
这里我假设 Struts 1。我不知道 Struts 2 是否发生了变化。
您可以将 errors.header 和 errors.footer 放入您的消息资源文件中:
errors.header=<h3><font color="red">Errors:</font></h3><ul>
errors.footer=</ul>
仅当 ActionErrors 对象中有任何错误时,才会显示页眉和页脚。
在您的 Action 类中,执行以下操作:
ActionErrors errors = new ActionErrors();
if (badInput) {
errors.add(ActionErrors.GLOBAL_ERROR,
new ActionError("error.bad.input", badString); // key in messages resource file
// badString will replace {0} in message
}
然后在返回之前:
saveErrors(request, errors);
在您的消息资源文件中:
error.bad.input=<li>Bad input: '{0}' is invalid.</li>
现在当<html:errors/>
标签被处理时,它会变成:
<h3><font color="red">Errors:</font></h3><ul>
<li>Bad input: 'xxyyzzz' is invalid.<li>
</ul>
这是一个快速的总结。你有一ActionForm
堂课,说MyForm
:
<form-bean name="myForm" type="myapp.forms.MyForm"/>
你有一Action
堂课,说MyAction
:
<action path="/insert" type="myapp.actions.MyAction" name="myForm"
input="/insert.jsp" validate="true" />
<forward name="success" path="/insertDone.jsp"/>
</action>
动作中的“name”指的是form-bean中的“name”。因为你有validate="true"
你的ActionForm
类MyForm
必须定义validate()
将自动调用的方法:
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if ((username==null) || (username.length() < 1))
errors.add("username", new ActionError("error.username.required"));
return errors;
}
如果它返回一个空的 ActionErrors 对象,Struts 会继续调用您的 MyAction.execute()。否则,Struts 将显示 /insert.jsp(因为这是您提供的 input= parm)并展开 html.errors 标记以显示来自 ActionErrors 的错误。
在struts动作中:
ActionErrors errors = new ActionErrors();
errors.add("", new ActionMessage("login.msg.err"));
saveErrors(request, errors);
“hello.msg.err”在 MessageBundle.properties 中定义
login.msg.err=Wrong user name or password
在您的 JSP 中,错误将由 h:errors 标签显示:
<h:errors/>
该视频逐步向您展示并为您解释所有这些内容: https ://youtu.be/YcCsJtqI72A