gpt4 book ai didi

java - Struts2 验证框架不验证字段

转载 作者:行者123 更新时间:2023-12-02 07:43:22 26 4
gpt4 key购买 nike

我是 Struts2 的新手。我想将验证框架用于简单的“注册”表单。这是我的 JSP 页面表单元素;

    <s:form action="register">
<s:textfield name="name" label="Name" />
<s:textfield name="age" label="Age" />
<s:textfield name="email" label="email"/>
<s:submit value="Register" />
</s:form>
validation error ? = <s:actionerror /><br/>
---Action Message--- <s:actionmessage/>

这里是struts2.xml文件;

    <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<package name="default" extends="struts-default">
<action name="register"
class="com.action.RegisterAction">
<result name="success">home.jsp</result>
<result name="input">index.jsp</result>
</action>
</package>
</struts>

RegisterAction 类有

  • 字符串名称;
  • 年龄;
  • 字符串电子邮件;具有 getter 和 setter 的变量。它的execute()只返回SUCCESS

对于这些字段验证,使用以下验证 xml 文件,目前仅检查一个字段名称。验证文件的名称为 RegisterAction-validation.xml

    <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<!-- Author: Aash -->
<validators>
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>name is required.. :) </message>
</field-validator>
</field>
</validators>

这是项目结构enter image description here

请任何人告诉我如何想出这个。提前致谢。

新添加:根据struts.xml,如果出现错误(验证表明有问题),页面应重定向到index.jsp ,但是当字段“name”没有给出任何内容时,它仍然会转到 home.jsp 。

找到解决方案
我添加到validation.xml
!DOCTYPE validator PUBLIC
“-//OpenSymphony Group//XWork validator 1.0.2//EN”
“http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd”>

但它显示在Form的顶部,我不知道为什么没有打印为actionError。如何将其打印在我想要查看的位置(例如:表格底部)?

最佳答案

由于它是一个字段错误,因为您已将元素放入 JSP 页面中,所以该消息接近字段 'name' 。如果你想打印它,你想要它在哪里,<s:fielderror fieldName="name" />

关于java - Struts2 验证框架不验证字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11275093/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com