首页 / JAVA / java-Struts2中的表单验证
java-Struts2中的表单验证
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-Struts2中的表单验证,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2545字,纯文字阅读大概需要4分钟。
内容图文
页面包含如下表格.
1)如果我插入到表单validate =“ true”,则在页面加载此表单后,将请求提交到邮件操作(此时尚未创建验证xml).
2)创建验证xml后(与动作相同),然后对该页面的控制请求的动作返回404页面.
我错过了什么?
<s:form action="mail" method="post">
<s:textfield name="name" key="Your name" size="20" />
<div style="clear: both;margin-top:10px"></div>
<s:textarea label="Comment" name="comment" cols="65" rows="5"/>
<s:submit method="mail" key="Send" align="left"
style="width:100px; height:35px; margin-top:20px"/>
</s:form>
验证XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="name">
<field-validator type="required">
<message>Please enter a user name</message>
</field-validator>
</field>
<field name="comment">
<field-validator type="required">
<message>Please enter your message</message>
</field-validator>
</field>
</validators>
如果我不添加验证,那么一切都会正常进行.
在struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.custom.i18n.resources" value="ApplicationResources" />
<package name="default" namespace="/" extends="struts-default">
<global-results>
<result name="Exception">/error404.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Throwable" result="Exception" />
</global-exception-mappings>
<!-- loads page -->
<action name="main"
class="com.user.action.LoginAction" method="main">
<result name="success">/main.jsp</result>
</action>
<!-- mail action -->
<action name="mail" class="com.user.action.LoginAction" method="mail" >
<result name="success">/main.jsp</result>
</action>
</package>
</struts>
解决方法:
INPUT是Struts2提供的predefined results之一;
基本上,如果您的操作发送的参数不正确(转换错误,如将“ abc”发送给Integer Action变量),或者未通过验证,则工作流拦截器将返回INPUT结果并遵循指定的路径在该Action的struts配置中.
您的问题是,您始终没有定义Action的任何INPUT结果.
您也可以将全局输入结果设置为后备,但要小心……通常,如果输入为INPUT,则要转到的页面与发送请求的位置相同.
如果是INPUT结果,则不会执行您的Action方法(例如execute()),因此,如果您在该方法中加载常用数据(如选择框内容),将不再可用.
阅读以下答案,以充分理解其含义以及如何使其工作:
> How do we repopulate controls when validation fails
> Detailed Workflow of the INPUT result processing
内容总结
以上是互联网集市为您收集整理的java-Struts2中的表单验证全部内容,希望文章能够帮你解决java-Struts2中的表单验证所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。