Ter*_*ere 7 java jsp struts struts-validation
我正在尝试在Struts中创建一个登录页面.想法是验证用户是否存在等,然后如果有错误,返回登录页面,错误为红色(典型登录或任何表单页面验证).
我想知道是否有人知道Struts中的错误管理教程.我正在寻找专门的教程(或示例)
<html:errors>
Run Code Online (Sandbox Code Playgroud)
标签,我认为这将解决我的问题.
Mar*_*ton 16
这是一个://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>
Run Code Online (Sandbox Code Playgroud)
仅当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
}
Run Code Online (Sandbox Code Playgroud)
然后在返回之前:
saveErrors(request, errors);
Run Code Online (Sandbox Code Playgroud)
在您的消息资源文件中:
error.bad.input=<li>Bad input: '{0}' is invalid.</li>
Run Code Online (Sandbox Code Playgroud)
现在<html:errors/>处理标签时,它将变为:
<h3><font color="red">Errors:</font></h3><ul>
<li>Bad input: 'xxyyzzz' is invalid.<li>
</ul>
Run Code Online (Sandbox Code Playgroud)
Mar*_*ton 10
这是一个快速摘要.你有一ActionForm节课,说MyForm:
<form-bean name="myForm" type="myapp.forms.MyForm"/>
Run Code Online (Sandbox Code Playgroud)
你有一Action节课,说MyAction:
<action path="/insert" type="myapp.actions.MyAction" name="myForm"
input="/insert.jsp" validate="true" />
<forward name="success" path="/insertDone.jsp"/>
</action>
Run Code Online (Sandbox Code Playgroud)
动作中的"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;
}
Run Code Online (Sandbox Code Playgroud)
如果它返回一个空的ActionErrors对象,Struts会继续调用你的MyAction.execute().否则,Struts会显示/insert.jsp(因为这是您给出的input = parm)并展开html.errors标记以显示ActionErrors中的错误.