这是显示全部用户信息的部分代码,点击超链接更新后 
<s:iterator value="#request.all" id="person"> 
<tr> 
<td> <a href="person.action?id= <s:property value='#person.id'/>"> <s:propertyvalue="#person.id"/> </a> </td> 
<td> <s:property value="#person.username"/> </td> 
<td> <s:property value="#person.password"/> </td> 
<td> <a href="delete.action?id= <s:property value='#person.id'/>">删除 </a> </td> 
<td> <a href="update.jsp?id= <s:property value='#person.id'/>">更新 </a> </td> 
</tr> 
</s:iterator> 
跳转到update.jsp 
<s:form action="update"> 
    <s:set name="id" value="#parameters.id[0]"> </s:set> 
    <s:textfield label="userid" name="id"> </s:textfield> 
    <s:textfield label="username" name="username"> </s:textfield> 
    <s:password label="password" name="password"> </s:password> 
    <s:submit value="submit"> </s:submit> 
</s:form> 
其中userid值已传递,就是填写用户名和密码两项,完毕后点击按钮,无法正常跳转。 
更新ation配置如下: 
<action name="update" class="updateAction"> 
    <result name="success" type="redirect">all.action </result> 
    <result name="input">update.jsp </result> 
    <result name="error">update.jsp </result> 
</action> UpdateAction-validation.xml配置部分内容如下: 
<validator type="requiredstring"> 
    <param name="fieldName">password </param> 
    <param name="trim">true </param> 
    <message>必须输入密码 </message> 
</validator> UpdateAction部分代码 
public String execute() throws Exception { 
                  System.out.println("111111111111"); 
Person p=new Person(); 
p.setId(id); 
p.setUsername(username); 
p.setPassword(password); 
if(personService.updatePerson(p)){ 
                  System.out.println("222222222222222"); 
return this.SUCCESS; 
}else{ 
                    System.out.println("333333333333"); 
return this.ERROR; 

} 点击按钮后控制台没有出现1或2或者3的字符串。 
经仔细检查,发现当提交的时候,返回的是input,还是update.jsp页面,但是userid和username值还在,password为空。 我的疑问是:当填写完用户名和密码的内容后点击按钮,怎么会进入不了UpdateAction的excute方法呢。

解决方案 »

  1.   

    把你的validator改成field validator试下看   <field name="password">
       <field-validator type="requiredstring">
           <param name="trim">true</param>
           <message>必须输入密码</message>
       </field-validator>
    </field>
      

  2.   

    form要给个ID,然后在点哪个按钮的时候提交那个form,比如
    <s:form id="updateForm" action="updateSubAction" method="get" theme="simple">
    ……
    </s:form>
    假如你要按更新按钮时
    <script type="text/javascript">
    function update() {
    document.getElementById("updateForm").submit();
    }
    </script>
      

  3.   

    class="updateAction" 这也是一个连接吗,配置了spring吗?
      

  4.   

    更新ation配置如下: 
    <action name="update" class="updateAction"> 
        <result name="success" type="redirect">all.action </result> 
        <result name="input">update.jsp </result> 
        <result name="error">update.jsp </result> 
    </action> 这里的<action name="update" class="updateAction"> 
    改成<action name="/update" class="updateAction">