<html:errors> struts tutorial or example

爱⌒轻易说出口 提交于 2019-12-09 05:53:09

问题


I'm trying to make a login page in Struts. The idea is to validate if the user exists, etc, and then if there is an error, return to the login page with the errors in red (the typical login or any form page validation).

I would like to know if someone knows an errors management tutorial in Struts. I'm looking specially for a tutorial (or example) of the

<html:errors>

tag, which I think would solve my problem.


回答1:


Here's a quick summary. You have an ActionForm class, say MyForm:

<form-bean name="myForm" type="myapp.forms.MyForm"/>

You have an Action class, say MyAction:

<action path="/insert" type="myapp.actions.MyAction" name="myForm"
   input="/insert.jsp" validate="true" />
  <forward name="success" path="/insertDone.jsp"/>
</action>

"name" in the action refers to "name" in the form-bean. Because you have validate="true" your ActionForm class MyForm must define validate() method which will automatically be called:

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;
}

If it returns an empty ActionErrors object, Struts goes on to call your MyAction.execute(). Otherwise, Struts displays /insert.jsp (because that's the input= parm you gave) and expands the html.errors tag to display your errors from ActionErrors.




回答2:


Here's one: //struts.apache.org/1.3.5/struts-taglib/apidocs/org/apache/struts/taglib/html/package-summary.html#package_description

Here I'm assuming Struts 1. I don't know if it has changed for Struts 2.

You can put an errors.header and errors.footer into your message resources file:

errors.header=<h3><font color="red">Errors:</font></h3><ul>
errors.footer=</ul>

The header and footer are displayed only if the ActionErrors object has any errors in it.

In your Action class, do this:

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
}

Then before returning:

saveErrors(request, errors);

In your messages resource file:

error.bad.input=<li>Bad input:  '{0}' is invalid.</li>

Now when the <html:errors/> tag is processed, it will turn into:

<h3><font color="red">Errors:</font></h3><ul>
<li>Bad input: 'xxyyzzz' is invalid.<li>
</ul>



回答3:


In struts action:

ActionErrors errors = new ActionErrors();
errors.add("", new ActionMessage("login.msg.err"));
saveErrors(request, errors);

The "hello.msg.err" is define in MessageBundle.properties

login.msg.err=Wrong user name or password

In you JSP, error will be shown by h:errors tag:

<h:errors/>

This video shows you step by step & explain you all those things: https://youtu.be/YcCsJtqI72A



来源:https://stackoverflow.com/questions/937584/htmlerrors-struts-tutorial-or-example

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!