你是用操连接连到action的?
改成submit按钮连过去试试呢

解决方案 »

  1.   

    协议不一样啊!如楼上所说,换成submit!
      

  2.   

    首先看看 struts-config.xml中是否配置正确再看看链接action写法是否正确:<a href="ttaction.do">test</a>
      

  3.   

    input 属性不是但验证失败时,把请求转发的url吗?
    建议把代码贴出来,才好帮你看啊
      

  4.   

    struts配置文件中配置action:<action path="/initUser"
        type="com.yumeng.strutstest.web.action.InitUserAction"
        //name="userForm" input="/home.jsp" 我不在此action中用actionForm,注释部分属性应该可以不要>
        <forward name="goIndex" path="/index.jsp" />
    </action>
      不要注释部分的属性报:
        javax.servlet.ServletException: Cannot retrieve definition for form bean null   on action initUser.do  郁闷,我又没有在action中使用actionForm,这两个属性应该可以不填的啊
    home.jsp中就一个链接:
    <%@ page language="java" pageEncoding="gbk"%>
    <html>
      <head>
         <title>home.jsp</title>
      </head>
      <body>
         <h1 align="center"><a href="initUser.do">Struts Test</a></h1>
      </body>
    </html>index.jsp页面的代码:
    <html>
    <body>
    <html:form action="deleteUser.do" >
       <table align="center" border="1">
         <tr>
    <td>
      <bean:message key="strutstest.message.select" />
    </td>
             <td>
       <bean:message key="strutstest.message.name" />
    </td>
    <td>
       <bean:message key="strutstest.message.age" />
    </td>
    <td>
       <bean:message key="strutstest.message.email" />
    </td>
    <td>
       <bean:message key="strutstest.message.operation" />
    </td>
    </tr>
       <logic:notEmpty name="users">
          <logic:iterate id="user" name="users"
            type="com.yumeng.strutstest.po.UserInfoBean">
         <tr>
    <td>
    <html:multibox styleId="delop" property="users">
    <bean:write name="user" property="name" />
    </html:multibox>
    <bean:message key="strutstest.message.select" />
            </td>
            <td>
             <bean:write name="user" property="name" />
            </td>
            <td><bean:write name="user" property="age" />
            </td>
            <td><bean:write name="user" property="email" />
            </td>
            <td>
            <ahref="deleteUser.do?strName=<bean:write name='user' property='name' />">
            <bean:message key="strutstest.message.delete" /> </a> &nbsp;
            <a href="loadUser.do?strName=<bean:write name='user' property='name' />">
            <bean:message key="strutstest.message.update" /> </a></td>
       </tr>       </logic:iterate>
       </logic:notEmpty>
          <tr>
    <td>
        <input type="button" onclick="onSelects()" 
                 value="<bean:message key='strutstest.message.selectall'/>" /> </td>
    <td>
       <html:submit>
         <bean:message key="strutstest.message.deleteall" />
       </html:submit>
    </td>
          </tr>    </table>
        </html:form>
        </body>
    </html>  
      

  5.   

    不知道这是不是一个重要的线索,我如果把actionForm改成继承ActionForm的话,就可进入action中去,我之前老遇到这中问题,我本来是想用验证框架的,由于遇到不能进入action的情况,我不得以把本来继承至ValidatorForm的form改为继承至ActionForm,也就没办法用struts的验证框架了,郁闷啊,期待高人的出现!在强调一遍,我的action就做查询所有学员信息记录,并把记录存在集合中的事,然后跳转到index.jsp
      

  6.   

    这是因为你通过initUser.do转发另外一个ACTION时那个ACTION是有FORM属性的,那个继承了VILIDATEForm的ACTION由于在VILIDATEForm检测失败从而返回要INPUT指向的页面。
      

  7.   

    还不行的话把超链接地址改了<a href="<%=request.getContextPath()%>initUser.do">试试
      

  8.   

    用form的sunmit提交
    和用超链接提交的写法是不一样的
    具体我是忘了,不过好像记得超链接不用写.do,还是写.do,不用写前面的/来着
      

  9.   

    你是不是用jbuilder作为开发环境啊,
    我记得用vlidatorForm不会生成一个文件出现啊,就几个get/set方法,在eclipse中你是看不到这个文件的
      

  10.   

    如果不使用form,建议你直接使用<global-forwards>
      

  11.   

    dream_yuit2008() 说:
    不要注释部分的属性报:
        javax.servlet.ServletException: Cannot retrieve definition for form bean null   on action initUser.do  郁闷,我又没有在action中使用actionForm,这两个属性应该可以不填的啊struts是根据页面提交的表单form在struts-config.xml里找到form,然后根据form才找到action的,所以必须要有name="userForm" ,才能找到action.如果在处理action时出错则会跳到input所指的业面中去。所有我想是否是你的action中mappingforward的参数和这个不一致了呢。 <forward name="goIndex" path="/index.jsp" />仅仅是个人意见!!!!
      

  12.   

    你可以把验证写在ActionForm中啊
      

  13.   

    你做一个JS,
    form.action = 你的链接;
    form.submit();
    就行了
      

  14.   

    ---------------------------------------------------------------------------------
    fulianglove() 
    还不行的话把超链接地址改了<a href="<%=request.getContextPath()%>initUser.do">试试
    ---------------------------------------------------------------------------------
    是正确的方法
      

  15.   

    <html:link page="/initUser"/>
      

  16.   

    你描写的一大堆,我都没怎么看明白,但大致我想问题有二在jsp中
    <html:form action="deleteUser.do" >
    action要写成struts-config.xml配置的一致,比如
    <html:form action="/deleteUser" >如果你写成的链接或者html标记可以是
    <a href="deleteUser.do"> 或者 <form action="deleteUser.do">
    可以用相对路路径还有因为你用的是ValidatorForm,它有它的默认 validate实现,面struts-config.xml的默认是启用validate的,所以需要禁用,action上加上validate="false"属性<action path="/deleteUser" validate="false"
        type="com.yumeng.strutstest.web.action.InitUserAction"还有问题,可与我联系,我的QQ是1125535,长期在线
      

  17.   

    一个你要了解的就是在进入 Action 之前Struts做了些什么事情。
      

  18.   

    1.Struts如果你用框架验证的话,在 Action的配置文件中要把validate="false"设置好,否则只要你继承ValicateForm,它就自动的去调用Validate方法进行验证,很有可能是在这验证没有通过才又跳回input所指的页面.
    2.你用的是链接,不是表单按钮的提交,它们两个的原理是不一样的,看看你的配置文件Struts-cfg.xml中是不是有配置不对的地方,主要是Action的配置.
      

  19.   

    validate验证不正确..
    主要查这里就可以了..