我如何告诉 Struts2 在表单第一次显示时不要验证表单?

2024-02-22

我目前正在尝试学习Struts2。

我创建了一个表单、一个处理表单的操作、一个验证表单的 XML 以及 struts.xml 中的操作。

每次显示表单时,即使是第一次,Struts2 都会尝试进行验证,因此在用户有机会完成表单之前就会显示错误。

这是相关代码:

<!-- /WebContent/views/user/login.jsp -->
<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login Page</title>
<s:head />
</head>
<body>
    <h1>Login Page</h1>
    <s:form action="executeUser">
        <s:textfield key="userBean.userName" />
        <s:password key="userBean.password" />
        <s:submit align="center" />
    </s:form>
</body>
</html>

<!-- /src/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" />

    <package name="overviewofstruts" extends="struts-default">
        <action name="loginUser" class="hu.flux.user.LoginUserAction" method="execute">
            <result name="input">/views/user/login.jsp</result>
        </action>

        <action name="executeUser" class="hu.flux.user.LoginUserAction" method="execute">
            <result name="input">/views/user/login.jsp</result>
            <result name="success">/views/user/login_thankyou.jsp</result>
        </action>
    </package>

</struts>

// /src/hu/flux/user/LoginUserAction.java
package hu.flux.user;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginUserAction extends ActionSupport {

    private User userBean;
    public void setUserBean(User userBean) { this.userBean = userBean; }
    public User getUserBean() { return userBean; }

    public String login() throws Exception { return this.execute(); }
    public String execute() throws Exception { return  SUCCESS; }
    public String input() throws Exception { return INPUT; }
}

<!-- // /src/hu/flux/user/LoginUserAction-validation.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
 <validator type="requiredstring">
    <param name="fieldname">userBean.userName</param>
    <message>Username is required.</message>
 </validator>
 <validator type="requiredstring">
    <param name="fieldname">userBean.password</param>
    <message>Password is required.</message>
 </validator>

我需要做什么或更改才能让 struts 第一次显示表单而不抱怨所有空白字段?


是的,我知道这个问题。通常我使用以下解决方法。

Mark execute with org.apache.struts2.interceptor.validation.SkipValidation

@SkipValidation
public String execute() throws Exception { return  SUCCESS; }

所以第一遍将忽略验证方法。但input将被验证。

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

我如何告诉 Struts2 在表单第一次显示时不要验证表单? 的相关文章

随机推荐

  • 错误:无法创建目录 \app\build\intermediates\incremental\packageDebug\zip-cache

    构建工作项目后突然显示错误 如何解决这个错误 错误 无法创建目录 app build intermediates incremental packageDebug zip cache 我尝试了以下解决方案 Delete gradle fro
  • Next.JS:如何在服务器端发出所有请求

    我正在构建一个Next JS https github com zeit next js将从 Python API 和 Postgres 数据库获取数据的应用程序 通常这很简单 但要求是我需要从服务器端而不是用户的客户端发送所有请求 我一直
  • R twitterR 搜索Twitter 地理编码警告/错误

    我正在尝试使用 twitteR 包提取推文 但是当我按照他们在文档中的方式指定地理编码时 在通过 searchTwitter 函数获取推文时遇到问题 请看下面的代码 Oauth code successful authentication
  • Maven:无法安装第 3 方 jar

    尝试将第 3 方 jar 安装到我的存储库 alfresco repository jar 中 我正在使用以下命令 mvn install install file DgroupId alfresco DartifactId alfresc
  • 如何编辑(更新)JSON 文件 flutter 中的数据

    我正在尝试将特定值更新为外部存储中的 JSON 文件 虽然我可以写入该文件 但它正在用单个数据替换整个 JSON 文件 这个是用单个值替换整个文档 Future setBookmark int questionId String isBoo
  • 画布中图像上的圆角

    我有一张画布 里面有图像 我希望在图像的两个角上放置圆角 我想这样做的方法是使用全球运营商之一 但我似乎不知道如何做到这一点 任何帮助 将不胜感激 不要使用全局运算符 而是计算出您希望图像占据的空间 应该是除圆角之外的矩形路径 然后在绘制图
  • 如何在Wix中引用heat.exe生成的wxs文件中的File元素

    我将为我的网络项目创建设置 我用http blog bartdemeyer be 2013 10 create an installer for website with wix part 1 http blog bartdemeyer b
  • 为什么 Bootstrap-3 中没有 col-xs-offset-* 类?

    我读到Twitter Bootstrap 3 文档 http getbootstrap com css grid offsetting它不支持col xs offset 类 这似乎不符合移动优先 有充分的理由吗 我认为它们可能有用 I re
  • Bootstrap 图标栏未显示

    调整浏览器大小时 Bootstrap 导航栏菜单中的图标栏不显示 http jsbin com ixAqinA 1 http jsbin com ixAqinA 1 section class container div class nav
  • 如何显示当前文件上传的缩略图或预览

    我无法显示预览video image being loaded 基本上我的意思是说下面的代码不是firing to get video image preview 这是我的Jsfiddle http jsfiddle net ChJ9B 1
  • 不同的 CSS 背景图像取决于月份和年份

    基本上 我有一个带有文本的 div 我希望背景根据月份和年份显示不同的图像 我怎样才能实现这个目标 任何帮助将不胜感激 我已经准备了 4 年的每月图像 标记为 month0 2011 png 到 month11 2014 png 如果有帮助
  • HttpListener:如何获取http用户和密码?

    我在这里遇到了 HttpListener 的问题 当表单请求 http user email protected cdn cgi l email protection 制作完成后 如何获取用户名和密码 HttpWebRequest 有一个
  • 静态 boost::wregex 实例是线程安全的吗?

    使用固定的 boost wregex 声明静态 全局变量 然后从多个线程使用它 而不用担心正则表达式的内部状态 如果 Boost 已使用 BOOST HAS THREADS 进行编译 是否安全 e g boost wregex g rege
  • 通过 Hibernate 获取 PL/SQL 函数的返回值

    我在 Oracle 数据库中有一个无法更改的 PL SQL 函数 该函数采用一个标识实体的参数 创建该实体的副本 然后返回副本的 ID 这看起来像 函数 copy entity id IN NUMBER 返回号码 我需要从 Hibernat
  • 混合 C++ 异常处理和 SEH (Windows)

    我有一个函数 我在其中调用getaddrinfo 得到一个sockaddr 其目标内存是由系统分配的 许多人可能知道 您需要致电freeaddrinfo 释放由 getaddrinfo 分配的内存 现在 在我的函数中 有几个地方可能会抛出异
  • 带 && 的 C if 语句 - 哪个函数将首先执行?

    如果我在 C 中有一个 if 语句 如下所示 if function1 gt 0 function2 gt 0 blah 哪个函数将首先执行并且总是按该顺序执行 Here function1 is 保证首先执行 The 运算符是一个短路运算
  • 向量的一维卷积

    我正在学习如何使用具有一维卷积的卷积神经网络 这是一个家庭作业示例 import numpy as np import keras from keras models import Sequential from keras layers
  • 为什么 parseInt(1/0, 19) 返回 18?

    我有一个恼人的问题JavaScript gt parseInt 1 0 19 gt 18 为什么parseInt函数返回18 的结果1 0 is Infinity https developer mozilla org en US docs
  • 如何在 SSIS 中设置 zip 文件的密码?

    我使用 SSIS 中的执行进程任务通过 7 zip 压缩了文件 现在我必须为 zip 文件设置密码 我该如何实现 我不认为这是一个 ssis 问题 你必须看看7zip 命令行用户指南 https sevenzip osdn jp chm c
  • 我如何告诉 Struts2 在表单第一次显示时不要验证表单?

    我目前正在尝试学习Struts2 我创建了一个表单 一个处理表单的操作 一个验证表单的 XML 以及 struts xml 中的操作 每次显示表单时 即使是第一次 Struts2 都会尝试进行验证 因此在用户有机会完成表单之前就会显示错误