struts 表单验证问题
HelloForm中使用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;
}
hello.jsp调用
<html:html locale="true">
<head>
<title><bean:message key="hello.jsp.title"/></title>
<html:base/>
</head>
<body bgcolor="white"><p>
<h2><bean:message key="hello.jsp.page.heading"/></h2><p>
<html:errors/><p>
<logic:present name="personbean" scope="request">
<h2>
<bean:message key="hello.jsp.page.hello"/>
<bean:write name="personbean" property="username" />!<p>
</h2>
</logic:present>
<html:form action="/hello" focus="username" >
<bean:message key="hello.jsp.prompt.person"/>
<html:text property="username" size="16" maxlength="16"/><br>
<html:submit property="submit" value="Submit"/>
<html:reset/>
</html:form>
</body>
</html:html>
当输入空的用户名后,系统报错
java.lang.ClassCastException
org.apache.struts.taglib.html.ErrorsTag.doStartTag(ErrorsTag.java:215)
org.apache.jsp.hello_jsp._jspx_meth_html_errors_0(hello_jsp.java:210)
org.apache.jsp.hello_jsp._jspx_meth_html_html_0(hello_jsp.java:134)
org.apache.jsp.hello_jsp._jspService(hello_jsp.java:89)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
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:763)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
调试后进入HelloForm的validate方法,其返回了errors对像,但是在hello.jsp中好像不能使用.
问题点数:50、回复次数:5Top
1 楼lifeng800(j2ee学习中)回复于 2005-07-03 11:20:16 得分 0
up
好象是类型不匹配!Top
2 楼BlueHand(BlueHand)回复于 2005-07-04 09:32:36 得分 0
代码开起来没什么问题,
你把配置文件贴出来看看,struts-config.xmlTop
3 楼liqian008(理智的愤青)回复于 2005-07-04 11:24:19 得分 50
改为errors.add("username",new ActionError("hello.no.username.error"))试试
Top
4 楼junnly()回复于 2005-07-04 14:55:30 得分 0
不明白为什么不用JavaScript????????Top
5 楼JetSnid(gordanyang)回复于 2005-07-04 23:42:55 得分 0
多谢各位了。Top




