Java Struts2不能使用验证吗?

Java Struts2不能使用验证吗?,java,jakarta-ee,struts2,Java,Jakarta Ee,Struts2,请原谅,我对Struts2很陌生 我创建了一个非常简单的表单,并创建了以下LoginAction-validation.xml: <validators> <field name="username"> <field-validator type="requiredstring"> <message key="username.required"/> </field-validator> &

请原谅,我对Struts2很陌生

我创建了一个非常简单的表单,并创建了以下LoginAction-validation.xml:

<validators>
  <field name="username">
    <field-validator type="requiredstring">
      <message key="username.required"/>    
   </field-validator>
    </field>
       <field name="password">
     <field-validator type="requiredstring">
     <message key="password.required"/> 
   </field-validator>  
  </field>
</validators>

我怀疑我可能把validation.xml放错了文件夹,但我不确定正确的位置在哪里。谢谢你的回复

验证xml文件必须与其验证的操作类位于同一Java包中。
在war文件中
LoginAction validation.xml
文件应位于
WEB-INF/classes/your\u LoginAction\u包中

验证xml文件必须与其验证的操作类位于同一Java包中。
在war文件中
LoginAction validation.xml
文件应位于
WEB-INF/classes/your\u LoginAction\u包中

如AleksandrM answer中所述,每个action-validation.xml文件必须位于相应操作的相同位置

Visitor Validator例外,其中object-validation.xml文件必须位于正在验证的对象的同一文件夹中,这不是操作

一些信息:

  • 必须为操作定义输入结果
  • 当您的字段引发一个或多个验证错误时,您的操作方法(例如execute())不会到达(只有prepare()方法(如果存在)会被执行),因此,如果您总是需要进行一些填充,例如组合框加载,请使用prepare()或session
  • 要查看JSP中的错误,需要将标记
    放入其中

如AleksandrM answer中所述,每个action-validation.xml文件必须位于相应操作的相同位置

Visitor Validator例外,其中object-validation.xml文件必须位于正在验证的对象的同一文件夹中,这不是操作

一些信息:

  • 必须为操作定义输入结果
  • 当您的字段引发一个或多个验证错误时,您的操作方法(例如execute())不会到达(只有prepare()方法(如果存在)会被执行),因此,如果您总是需要进行一些填充,例如组合框加载,请使用prepare()或session
  • 要查看JSP中的错误,需要将标记
    放入其中

我认为问题在于您的
验证。xml
的位置不正确

表示不要将validation.xml文件放在
web inf/classes
文件夹中,而是放在

动作类所在的动作包

例如:对于某个操作类,您的包名是
com.insert
,而
您的类名是

Insert.java
&您的验证文件必须位于名为

Insert validation.xml
然后它将正常工作

Bottom Line Is:action class and validation file should be present in a same package.

我认为问题在于您的
验证。xml
的位置不正确

表示不要将validation.xml文件放在
web inf/classes
文件夹中,而是放在

动作类所在的动作包

例如:对于某个操作类,您的包名是
com.insert
,而
您的类名是

Insert.java
&您的验证文件必须位于名为

Insert validation.xml
然后它将正常工作

Bottom Line Is:action class and validation file should be present in a same package.

谢谢但是,我使用Eclipse并将Action类放在默认包下,因此,我将validation.xml放在“build/classes”文件夹中,在那里我可以看到所有编译的Action类。再说一次,运气不好。你能给我一些建议吗?我的建议是:当任何对struts或学习struts的新手使用struts-blank.war文件时。为什么?因为包括目录结构在内的所有内容(库文件)都正确地显示在web内容下,从新的jsp页面开始,您不会感到困惑。获取此链接非常有用,并且仅从该目录获取struts-blank.war文件,直接导入到您的eclipse并开始执行项目。谢谢。但是,我使用Eclipse并将Action类放在默认包下,因此,我将validation.xml放在“build/classes”文件夹中,在那里我可以看到所有编译的Action类。再说一次,运气不好。你能给我一些建议吗?我的建议是:当任何对struts或学习struts的新手使用struts-blank.war文件时。为什么?因为包括目录结构在内的所有内容(库文件)都正确地显示在web内容下,从新的jsp页面开始,您不会感到困惑。获取此链接非常有用,并且仅从该目录中获取struts-blank.war文件,直接导入到eclipse并开始执行项目。