首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Exception >

在ActionForm中生成的ActionErrors不能使用。

2014-01-26 
在ActionForm中生成的ActionErrors不能使用 在Action中生成的ActionMessages,在jsp中可以利用html:message

在ActionForm中生成的ActionErrors不能使用

在Action中生成的ActionMessages,在jsp中可以利用<html:messages>取得错误结果。

而在ActionForm中的ActionErrors,在jsp中怎么也显示不出来,<html:errors/>不行,而且有时还报错。

有时ActionErrors里有错误,就看不到Action中生成的ActionMessages的错误了。

请问为什么?

------解决方法--------------------------------------------------------
从Struts源代码可看出来,出错信息是采用了setAttribute()函数来保存数据的,所以可以采用各种带有getAttribute()函数来显示,可见出错信息用<logic:Iterate>来提取也是一样的。
可见,在Action、ActionForm、自定义标签文件或其它类文件中也可以直接用setAttribute()函数来保存出错数据。但需要注意保存的有效范围。


------解决方法--------------------------------------------------------
你可以把报错信息放到session中啊。然后在从页面中抓出来啊。
------解决方法--------------------------------------------------------
你可以把你的实现代码贴出来看一下,我原先也遇到过这种问题,不知道你的情况和我那时是否相同。不需要你前台的jsp代码,只需要你在action里面add那个error信息的几行代码即可
------解决方法--------------------------------------------------------
try

if (username.equals("")) {
ActionError error = new ActionError("error.missing.username");
errors.add(ActionErrors.GLOBAL_ERROR, error);
}
if (password.equals("")) {
ActionError error = new ActionError("error.missing.password");
errors.add(ActionErrors.GLOBAL_ERROR, error);
}

//如出错就转向输入页面,并显示相应的错误信息
saveErrors(request, errors);
------解决方法--------------------------------------------------------
Action-------
// Created by Xslt generator for Eclipse.
// XSL : not found (java.io.FileNotFoundException: (Bad file descriptor))
// Default XSL used : easystruts.jar$org.easystruts.xslgen.JavaClass.xsl

package com.brilliance.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.log4j.*;

import com.brilliance.struts.form.LoginForm;
import com.brilliance.struts.common.userBean;         

热点排行