日期:2014-05-17 浏览次数:20617 次
在eclipse+myEclipse下开发的struts1.2.6应用
? 输入合法是返回我要的结果
? 但是validation失败时出错
?
? jsp中用<html:errors/>输出
?
? Form中validate函数如下:
? public ActionErrors validate(
? ActionMapping mapping,
? HttpServletRequest request) {
?
? ActionErrors errors = new ActionErrors();
? if ((userName == null) || (userName.length() < 1))
? errors.add("username",new ActionMessage(hello.no.username.error"));
?
? return errors;
? }
?
? Action中的business validation部分代码如下:
? ActionMessages errors = new ActionMessages();
? String userName = helloForm.getUserName();
?
? String badUserName = "badguy";
?
? if (userName.equalsIgnoreCase(badUserName)) {
? errors.add("username", new ActionMessage("hello.dont.talk.to.badguy",
? badUserName));
? saveMessages(request, errors);
? return (new ActionForward(mapping.getInput()));
? }
?
? 表单为空时,错误信息如下:
? type Exception report
?
? message
?
? description The server encountered an internal error () that prevented it from fulfilling this request.
?
? exception
?
? org.apache.jasper.JasperException: org.apache.struts.action.ActionMessage
? org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
? org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
? org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
? javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
? org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
? org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1012)
? org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:980)
? org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:255)
? org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
? org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
? javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
? javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
?
? 新手刚起步,不知道错哪里了。
------解决方法--------------------
hello.no.username.error
? 少个引号.
------解决方法--------------------
web.xml配置了吗?
? 其实你简直就是没有很好利用到struts1.1以上版本的好处啊:),你的这种写法还以1.0的写法
------解决方法--------------------
我建议,你还是静下心来,myeclipse不是可以设置断点调试么?
? 你看看到底是哪一个地方出错了,然后再找解决办法
------解决方法--------------------
tag必须再web.xml中注册!
------解决方法--------------------
在struts-config.xml最后加入 <message-resources parameter="com.dacop.ApplicationResources" key="org.apache.struts.action.MESSAGE" />
? 其中ApplicationResources为你定义错误信息的资源文件名称