Struts2 中的表单验证

2023-12-01

页面包含如下所示的表单。

1)如果我插入表格验证=“真”,然后在页面加载后,将此表单提交到邮件操作请求(此时尚未创建验证 xml)。

2)验证xml创建后(与action在同一包中),然后控制对该页面的请求的action返回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 提供;

基本上,如果您的 Action 发送的参数不正确(转换错误,例如您发送"abc" to an IntegerAction 变量),或者未通过验证,工作流拦截器返回INPUT结果并遵循该 Action 的 struts 配置中指定的路径。

你的问题是你没有定义任何INPUT你的行动的结果,而你总是应该这样做。

您还可以将全局输入结果设置为后备,但要小心......通常,在发生错误时您想要转到的页面INPUT与发送请求的位置相同。

如果出现INPUT结果,您的操作方法(例如execute()) 不会执行,因此如果您在该方法中加载常用数据(例如选择框内容),它将不再可用。

阅读此答案以充分理解这意味着什么以及如何使其发挥作用:

  • 验证失败时如何重新填充控件

  • INPUT结果处理的详细工作流程

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Struts2 中的表单验证 的相关文章

  • 如何查看Pocketsphinx词典中是否存在该单词?

    我只是想看看字典文件中是否存在字符串 字典文件位于问题底部 我想检查语音识别器是否可以识别单词 例如 识别器将无法识别字符串ahdfojakdlfafiop 因为字典中没有定义 所以 我可以检查某个单词是否在 pocktsphinx 词典中
  • Android - 如何访问 onResume 中 onCreate 中实例化的 View 对象?

    In my onCreate 方法 我正在实例化一个ImageButton View public void onCreate Bundle savedInstanceState super onCreate savedInstanceSt
  • java中的csv到pdf文件

    我正在尝试获得一个csv文件解析为pdf 到目前为止我所拥有的内容附在下面 我的问题是这段代码最终出现在 pdf 中的文件在 csv 文件的第一行被截断 我不明白为什么 附示例 本质上我想要一个没有任何操作的 csv 文件的 pdf 版本
  • 将链接对象转换为流或集合

    我想迭代堆栈跟踪 堆栈跟踪由可抛出对象组成 其 getCause 返回下一个可抛出对象 最后一次调用 getCause 返回 null 示例 a gt b gt null 我尝试使用 Stream iterable 这会导致 NullPoi
  • JTree 节点不会被直观地选择

    不知何故 我无法为我的 JTree 节点启用 选择突出显示 我正在我的项目中使用自定义单元格渲染器 这很可能导致此问题 这是完整的渲染器类代码 protected class ProfessionTreeCellRenderer exten
  • Java 泛型/类型调度问题

    考虑以下程序 import java util List import java util ArrayList public class TypeTest public static class TypeTestA extends Type
  • 方法断点可能会大大减慢调试速度

    每当向方法声明行添加断点 在 Intellij IDEA 或 Android Studio 中 时 都会出现一个弹出窗口 方法断点可能会大大减慢调试速度 为什么会这样戏剧性地减慢调试速度 是我的问题吗 将断点放在函数的第一行有什么不同 Th
  • 如何将 XMP XML 块序列化为现有的 JPEG 图像?

    我有许多 JPEG 图像 其中包含损坏的 XMP XML 块 我可以轻松修复这些块 但我不确定如何将 固定 数据写回图像文件 我目前正在使用 JAVA 但我愿意接受任何能让这项任务变得容易的事情 这是目标关于 XMP XML 的另一个问题
  • 所有junit测试后的清理

    在我的项目中 我必须在所有测试之前进行一些存储库设置 这是使用一些棘手的静态规则来完成的 然而 在所有测试之后我不知道如何进行清理 我不想保留一些神奇的静态数字来引用所有测试方法的数量 我应该一直维护它 最受赞赏的方法是添加一些侦听器 该侦
  • 为什么我在 Mac 上看到“java.lang.reflect.InaccessibleObjectException: Unable to make private java.nio.DirectByteBuffer(long,int)accessibl

    我已经在工作中愉快地构建代码好几天了 但突然我的一个项目 不是全部 失败并出现此错误消息 看看下面的答案吧 我是如何修复它的 起初我用谷歌搜索 看到很多有这个问题的人正在使用 Java 16 但我认为 错误 我正在使用 Java 11 因为
  • 使用 java 按电子邮件发送日历邀请

    我正在尝试使用 java 发送每封电子邮件的日历邀请 收件人收到电子邮件 但不会显示接受或拒绝的邀请 而是将该事件自动添加到他的日历中 我正在使用 ical4j jar 构建活动 邀请 private Calendar getInvite
  • 覆盖 MATLAB 默认静态 javaclasspath 的最佳方法

    MATLAB 配置为在搜索用户可修改的动态路径之前搜索其静态 java 类路径 不幸的是 静态路径包含相当多非常旧的公共库 因此如果您尝试使用新版本 您可能最终会加载错误的实现并出现错误 例如 静态路径包含 google collectio
  • tomcat 过滤所有 web 应用程序

    问题 我想对所有网络应用程序进行过滤 我创建了一个过滤器来监视对 apache tomcat 服务器的请求 举例来说 它称为 MyFilter 我在 netbeans 中创建了它 它创建了 2 个独立的目录 webpages contain
  • 从 html 页面和 javascript 调用 java webservice

    我正在尝试从 javascript 调用 java 实现的 Web 服务 使用 NetBeans IDE 我读过很多关于 jQuery 和 AJAX 的内容 但我似乎无法掌握它 假设我的 Web 服务 WSDL 位于 http localh
  • 在 AKKA 中,对主管调用 shutdown 是否会停止其监督的所有参与者?

    假设我有一位主管连接了 2 位演员 当我的应用程序关闭时 我想优雅地关闭这些参与者 调用supervisor shutdown 是否会停止所有参与者 还是我仍然需要手动停止我的参与者 gracias 阻止主管 https github co
  • 不兼容的类型:在 java netbeans 中对象无法转换为 String

    我试图在我的项目中使用对象数组 但出现错误 incompatible types Object cannot be converted to String 在这一行 ST1 new String emt1 emt2 emt3 emt4 现在
  • struts 教程或示例

    我正在尝试在 Struts 中制作一个登录页面 这个想法是验证用户是否存在等 然后如果有错误 则返回到登录页面 错误显示为红色 典型的登录或任何表单页面验证 我想知道是否有人知道 Struts 中的错误管理教程 我正在专门寻找有关的教程 或
  • 重写Object类的finalize()方法有什么用?

    据我所知 在java中如果我们想手动调用垃圾收集器 我们可以执行System gc 1 我们在重写的finalize 方法中做了哪些操作 2 如果我们想手动调用JVM垃圾收集器 是否需要重写finalize 方法 我们在重写的 Finali
  • 为什么 BufferedWriter 不写入文件?

    我有这个代码 String strings Hi You He They Tetrabenzene Caaorine Calorine File file new File G words txt FileWriter fWriter Bu
  • 尝试使用带有有效购买令牌的 Java Google Play Developer API v3 检索应用内购买信息时出现错误请求(无效值)

    当使用 Java Google Play Developer API 版本 3 并请求有效购买令牌的购买信息时 我收到以下异常 API 调用返回 400 Bad Request 响应以及以下消息 code 400 errors domain

随机推荐

  • epoll(epoll_wait等)可用于iOS吗?

    我正着手将一些现有的 POSIX 兼容代码移植到 iOS 据我所知 pthreads 可用 良好 但编译器未找到 iOS 上可以使用 epoll 吗 No epoll是 Linux 特定的系统调用 达尔文内核上最接近的等价物是kqueue
  • 彩信发送/接收日期始终为 1970 年

    从下面的代码我可以得到彩信 但日期总是错误的 可能是我在转换时做错了什么 Cursor cursor activity getContentResolver query Uri parse content mms null null nul
  • Android gradle:共享产品风格之间的依赖关系

    我的应用程序中有 3 种产品口味 flavor1 flavor2 flavor3 flavor1 和flavor2 共享一些与广告相关的依赖项 有没有办法将与广告相关的依赖项捆绑到 gradle 维度或配置 并将其添加到flavor1 和f
  • 渲染视图到视图寻呼机 - 优化方式

    在我的应用程序中 我使用以下方法来渲染 生成视图寻呼机的视图 是的 它工作正常并且符合预期 注意 但在这里我看到这种方法必须在 Android 资源 与设备相关 方面付出很多努力 我想找出任何优化的方法来做到这一点 有吗 建议我还是上面的好
  • Flot Charts - 在单个 html 页面中处理多个 flot

    我有一个针对单个图表实现的显示 并希望扩展该解决方案 以便 3 个图表具有相同的属性 具体来说 我想启用选择缩放 双击以重置显示 我希望该系列的图例是可单击的 以便每次单击该系列都会打开 关闭 我成功地实现了它们基于以前的帖子 这是一个在单
  • 是否可以在 Tizen 操作系统设备上安装 Android 应用程序? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我有一个 Android 应用程序 我想将其安装在基于 Tizen 操作系统的设备上 例如三星 z1 或三星手表 我对Tizen了解不多 您能否解释一下现有的 Android 应用程
  • 如何将多边形修改为孔(SpatialPolygons)并更改其槽

    Edit 正如 Edzer Pebesma 在评论中所建议的 向多边形添加孔的推荐方法不是修改槽 而是重建多边形 如图所示在这个相关问题中 原问题 在以下人员的帮助下SpatialPolygons class我尝试将一个多边形修改为另一个多
  • 如何识别用户代理是否是Windows 8平板电脑?

    我有一个网络应用程序 在我的 JavaScript 中 我通过用户代理字符串识别设备 如下所示 android navigator userAgent toLowerCase indexOf android iOS navigator pl
  • 如何在 NEST2 中更新 Elasticsearch 文档

    我已将代码移植到 NEST 2 0 和 Elasticsearch 2 0 我需要找到一种方法来更新已存储到 ES2 中的文档 我当时用的是部分对象技术 elastic Update
  • 如何使用 ADO 和 JavaScript 获取受语句影响的行数?

    我在用着ADO在 JScript Microsoft JavaScript 方言 Windows 脚本宿主脚本中更新 SQL Server 表 我想获取受脚本中更新影响的行数 但 JavaScript 没有引用传递 因此我无法执行通常的操作
  • 在 Chrome Javascript API 中分块下载文件?

    Chrome Javascript API 是否支持同时下载多个块的文件 例如在下载管理器中 简短的回答 不 没有特殊支持 有一个专门的chrome downloadsAPI 但它与普通 Chrome 下载的机制相同 即单流 长答案 你可以
  • 如何将对象转换为 int

    java中如何将对象转换为int 如果您确定该对象是Integer int i Integer object 或者 从 Java 7 开始 您可以等效地编写 int i int object 当心 它可能会抛出一个ClassCastExce
  • 如何在 ASP.NET 表单上使用 javascript 调用回发

    我有一个带有文本框和按钮的网络表单 我想在 ENTER 键后单击文本框 postbak 表单 我正在使用下一个代码 onkeypress if event keyCode 13 alert 2 WebForm DoPostBackWithO
  • 解析错误:语法错误,我的 PHP 代码中出现意外的文件结尾

    我收到一个错误 Parse error syntax error unexpected end of file in the line 有了这个代码 h2 Welcome Administrator h2 a href Upload Fil
  • Magento API REST 客户未重定向到身份验证页面

    我正在尝试通过客户帐户访问产品 为了实现这一点 我使用来自的示例代码oauth customer phpmagento 文档页面 Everything is okay and working fine but the thing I am
  • 为什么在表达式后添加尾随逗号会创建元组?

    为什么在表达式后添加尾随逗号会创建tuple与表达式的值 例如 在这段代码中 gt gt gt abc mystring gt gt gt print abc mystring 为什么打印输出 mystring 而且不仅仅是mystring
  • 发布具有几千个值的表单

    我有一个基于语言的应用程序 其中包含每种语言的程序每个部分的语言文件 例如 en inc php lang main this is my main string 有些文件包含超过 2000 个变量 我正在创建的 Web 表单中更新翻译 我
  • Javascript 中的类型强制到底是什么?

    Javascript 中的类型强制到底是什么 例如 关于使用 代替 类型强制意味着当运算符的操作数是不同类型时 其中一个操作数将转换为另一个操作数类型的 等效 值 例如 如果您这样做 boolean integer 布尔操作数将转换为整数
  • 如何在 JFrame 内的 JPanel 内绘制形状

    我在 JPanel 内部绘制已使用 Netbeans GUI 添加的形状时遇到问题 现在 我不知道在哪里添加用于在该 JPanel 内绘制圆的代码 以及如何在现在空着的 JPanel 中插入和调用它 等待绘制该形状 我已经将目标 JPane
  • Struts2 中的表单验证

    页面包含如下所示的表单 1 如果我插入表格验证 真 然后在页面加载后 将此表单提交到邮件操作请求 此时尚未创建验证 xml 2 验证xml创建后 与action在同一包中 然后控制对该页面的请求的action返回404页面 我错过了什么