public class UserAction extends BaseAction {      
  private UserService userService;
private User user; /**
 * 添加用户
 * @return
 */
public String add() {
userService.addUser(user);
return "add_success";
}}以上是action,<?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>
<!-- 针对自定义Field使用visitor校验 -->
<field name="user">
<field-validator type="required" short-circuit="true">
            <message>用户的信息必填</message><!-- 消息前缀 -->
</field-validator>
<field-validator type="visitor">
<param name="context">addContext</param><!-- 指定本visitor校验的上下文 -->
            <param name="appendPrefix">true</param><!-- 是否要添加校验失败消息的前缀 -->
            <message>用户的</message><!-- 消息前缀 -->
</field-validator>
</field>
</validators>上边是验证结构!我字是UserAction-add-validation.xml
为什么不起作有用!

解决方案 »

  1.   

    看看你struts2配置文件内容你action里面也没写验证方法。。
      

  2.   

    <global-results>
         <result name="add_success" type="redirect">/common/add_success.jsp</result>
         <result name="del_success" type="redirect">/common/del_success.jsp</result>
         <result name="update_success" type="redirect">/common/update_success.jsp</result>
         </global-results>     <action name="userAction" class="com.eomist.action.UserAction">
                <result>/user/index.jsp</result>
                <result name="addInput">/user/add_input.jsp</result>
                <result name="updateInput">/user/update_input.jsp</result>
            </action>上边是action的跳转配置!增加成功后向全局跳转!
      

  3.   

    人家已经摆明了是xml校验,还要什么校验方法.?还有LZ, 你这个user,在界面上是也是写user吗? 校验文件中字段名的写法与界面上要一致,比如说你界面上是user.name,那么这里也要user.name还有 你这个UserAction-add-validation.xml校验文件是对name叫add的action进行校验的.! 我在你的配置文件里面看不到<action name="add">这样的东西
      

  4.   

    <div style="color:red"><s:fielderror/></div>
    <form action="actions/userAction!add" method="post">
    <TABLE class="tableEdit" border="0" cellspacing="1" cellpadding="0" style="width:580px;">
    <TBODY>
    <TR>
    <!-- 这里是添加、编辑界面的标题 -->
    <td align="center" class="tdEditTitle">添加用户</TD>

    </TR>
    <TR>
    <td>
    <!-- 主输入域开始 --><input type="hidden" name="method" value="add"><table class="tableEdit" style="width:580px;" cellspacing="0" border="0" cellpadding="0">
    <tr>
    <td class="tdEditLabel" >用户名</td>
    <td class="tdEditContent"><input type="text" name="user.loginName" value="${param['user.loginName']}" ></td>
    <td class="tdEditLabel" >密码</td>
    <td class="tdEditContent"><input type="text" name="user.password"></td>
    </tr>
    </table> <!-- 主输入域结束 -->
    </td>
    </TR>
    </TBODY>
    </TABLE>
      

  5.   

    那你的校验文件就不要叫xxx-add-validation.xml, 你那样访问也只是访问userAction的add方法而已,
    而真正的action是userAction,  用dmi的话,你就直接对整个action进行校验.
    UserAction-validation.xml
      

  6.   

    对visitor进行配置如下:1.配置校验文件:User-addContext-validation.xml2.校验位置:应该放在同User类相同目录下。
      

  7.   

    代码没问题!看看配置文件是否在和class在一个目录下!重启下,清清缓存之类的
    再不行就是老天爷作怪了!
    相信自己!出门溜达一圈回来自己就好了!