关于struts的客户端验证的问题

inter0507 2006-09-22 10:04:33
最近在学习struts客户端验证,遇到了一个问题,首先我描述一下我的程序,很简单我想在客户端验证actionform的一个属性的,保证其不能为空
以下是的jsp里面的代码

<%@ page language="java"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>

<html>
<head>
<title>JSP for addloginForm form</title>
</head>
<body>
<html:javascript formName="addloginForm"/>
<html:form action="/addlogin" onsubmit="return validateaddloginForm(this)">
password : <html:password property="password"/><html:errors property="password"/><br/>
username : <html:text property="username"/><html:errors property="username"/><br/>
<html:submit/><html:cancel/>
</html:form>
</body>

</html>

就是要保证username不能为空
我的validation.xml文件代码是

<?xml version="1.0" encoding="UTF-8"?>

<form-validation>
<formset>
<form name="addloginForm">
<field property="username" depends="required">
<arg0 key="not null"/>
</field>
</form>
</formset>
</form-validation>

我的strust-config.xml关于这个action和actionform的代码片断是

<form-beans >
<form-bean name="addloginForm" type="com.yourcompany.struts.form.AddloginForm" />
.................................
<action-mappings >
<action
attribute="addloginForm"
input="/addlogin.jsp"
name="addloginForm"
path="/addlogin"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy"
validate="false">
<forward name="false" path="/false.jsp" />
<forward name="sucess" path="/sucess.jsp" />
</action>
...................................

可是在运行网页的时候就报错了

java.lang.NullPointerException
at org.apache.struts.validator.Resources.getMessage(Resources.java:209)
at org.apache.struts.taglib.html.JavascriptValidatorTag.doStartTag(JavascriptValidatorTag.java:421)
at org.apache.jsp.addlogin_jsp._jspx_meth_html_javascript_0(org.apache.jsp.addlogin_jsp:112)
at org.apache.jsp.addlogin_jsp._jspService(org.apache.jsp.addlogin_jsp:81)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)


我猜测是网页的问题,可是改了好多就是不多!请帮我看看
...全文
229 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
inter0507 2006-09-25
  • 打赏
  • 举报
回复
再次感谢楼上兄弟的解答!我按照你说的该了,没有javascript的错误了,基本功能也能实现,可是我发现我想要用户看到的信息在弹出的对话框里面不能显示,也就是对话框里什么都没有。可是我在资源文件里写了的
我的ApplicationResources.properties文件的内容是

# Resources for parameter 'com.yourcompany.struts.ApplicationResources'
# Project P/project
errors.required={0} is required.

我的validation.xml的内容是

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<formset>
<form name="AddloginForm">
<field property="username" depends="required">
<msg name="required" key="errors.required"/>
<var>
<var-name>required</var-name>
<var-value>${username}</var-value>
</var>
</field>
</form>
</formset>
</form-validation>

我的jsp代码没有变


<%@ page language="java"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>

<html:html>
<head>
<title>JSP for addloginForm form</title>
</head>
<body>

<html:javascript formName="AddloginForm"/>

<html:form action="/addlogin" onsubmit="return validateAddloginForm(this)">
password : <html:password property="password"/><html:errors property="password"/><br/>
username : <html:text property="username"/><html:errors property="username"/><br/>
<html:submit/><html:cancel/>
</html:form>
</body>

</html:html>


我看过了我的jsp里面是由javacript代码的
tcmis 2006-09-22
  • 打赏
  • 举报
回复
你的资源文件有这个字段吗?
not null,是这样吗?
validate="false"为false怎么验证。。

----------------------------
quote:
<arg0 key="not null"/>
----------------------------
fashchina 2006-09-22
  • 打赏
  • 举报
回复
<html:form action="/addlogin" onsubmit="return validateaddloginForm(this)">

-->

<html:form action="/addlogin" onsubmit="return validateAddloginForm(this)">

validate**** --------->***为formbean的名字,第一个字母要大写

其他的没怎么看

你看看html代码里面是否生成了js代码
lovest317 2006-09-22
  • 打赏
  • 举报
回复
<html:form action="/addlogin" onsubmit="return validateaddloginForm(this)">
这里错了应该是
<html:form action="addlogin.do" onsubmit="return validateaddloginForm(this)">
inter0507 2006-09-22
  • 打赏
  • 举报
回复
谢谢楼上这位的回答,我今天早上有做了修改,现在打开网页的时候不会报错了
可是出现了脚本的错误,很令人分解,我把我现在的代码给出来,请各位帮我再看看
jsp的代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<formset>
<form name="addloginForm">
<field property="username" depends="required">
<msg name="required" key="errors.required"/>
<var>
<var-name>required</var-name>
<var-value>username</var-value>
</var>
</field>
</form>
</formset>
</form-validation>

就是要保证username不能为空
我的validation.xml文件代码是

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<formset>
<form name="addloginForm">
<field property="username" depends="required">
<msg name="required" key="errors.required"/>
<var>
<var-name>required</var-name>
<var-value>username</var-value>
</var>
</field>
</form>
</formset>
</form-validation>

我的strust-config.xml关于这个action和actionform的代码片断是

<form-beans >
<form-bean name="addloginForm" type="com.yourcompany.struts.form.AddloginForm" />
............................
<action-mappings >
<action
attribute="addloginForm"
input="/addlogin.jsp"
name="addloginForm"
path="/addlogin"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy"
validate="true">
<forward name="false" path="/false.jsp" />
<forward name="sucess" path="/sucess.jsp" />
</action>
..................................
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>


</struts-config>


我点submit以后,网页就说缺少对象,758行1列
这次是不是网页里面的struts标签用的不对??
对了我的application.properties文件的内容是

errors.required={0}is required.
fashchina 2006-09-22
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="UTF-8"?>

<form-validation>
<formset>
<form name="addloginForm">
<field property="username" depends="required">
<arg0 key="not null"/>
</field>
</form>
</formset>
</form-validation>

<arg0 key="not null"/> --->key的值是资源文件的key
也可以不在资源文件查找
改:
<arg0 key="not null" resource="false"/>

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧