首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><html:errors> struts教程或示例

<html:errors> struts教程或示例
EN

Stack Overflow用户
提问于 2009-06-02 01:34:33
回答 3查看 64.8K关注 0票数 7

我正在尝试在Struts中创建一个登录页面。其思想是验证用户是否存在,等等,如果有错误,则返回登录页面,错误显示为红色(典型的登录或任何表单页面验证)。

我想知道是否有人知道Struts中的错误管理教程。我正在特别寻找一个教程(或示例)的

代码语言:javascript
复制
<html:errors>

标签,我想这会解决我的问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-06-04 16:40:59

这是一个简短的总结。假设您有一个ActionForm类,比如MyForm

代码语言:javascript
复制
<form-bean name="myForm" type="myapp.forms.MyForm"/>

假设您有一个Action类,比如MyAction

代码语言:javascript
复制
<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",所以您的ActionFormMyForm必须定义validate()方法,该方法将被自动调用:

代码语言:javascript
复制
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对象,它会继续调用您的MyAction.execute()。否则,Struts将显示/insert.jsp (因为这是您提供的input=参数),并扩展html.errors标记以显示ActionErrors中的错误。

票数 10
EN

Stack Overflow用户

发布于 2009-06-02 03:22:28

这里有一个: //struts.apache.org/1.3.5/struts-taglib/apidocs/org/apache/struts/taglib/html/package-summary.html#package_description

这里我假设是Struts1,我不知道Struts2是否已经改变了。

您可以将errors.header和errors.footer放入消息资源文件中:

代码语言:javascript
复制
errors.header=<h3><font color="red">Errors:</font></h3><ul>
errors.footer=</ul>

仅当ActionErrors对象中有任何错误时,才会显示页眉和页脚。

在Action类中,执行以下操作:

代码语言:javascript
复制
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
}

然后在返回之前:

代码语言:javascript
复制
saveErrors(request, errors);

在您的消息资源文件中:

代码语言:javascript
复制
error.bad.input=<li>Bad input:  '{0}' is invalid.</li>

现在,当处理<html:errors/>标记时,它将变成:

代码语言:javascript
复制
<h3><font color="red">Errors:</font></h3><ul>
<li>Bad input: 'xxyyzzz' is invalid.<li>
</ul>
票数 16
EN

Stack Overflow用户

发布于 2019-05-12 23:26:54

在struts操作中:

代码语言:javascript
复制
ActionErrors errors = new ActionErrors();
errors.add("", new ActionMessage("login.msg.err"));
saveErrors(request, errors);

MessageBundle.properties中定义了"hello.msg.err“

代码语言:javascript
复制
login.msg.err=Wrong user name or password

在JSP中,错误将由h: error标记显示:

代码语言:javascript
复制
<h:errors/>

这个视频一步一步地向你展示,并向你解释所有这些事情:https://youtu.be/YcCsJtqI72A

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/937584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档