首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

SSH有关问题,There is no Action 地图ped for action name null

2012-12-16 
SSH问题,There is no Action mapped for action name null.index.jsp页面如下:div aligncenter style

SSH问题,There is no Action mapped for action name null.
index.jsp页面如下:


   <div align="center" style="border-style: groove">
     <form action="login" id="login" method="post"  onsubmit="return isNull();">
     <strong>姓&nbsp;&nbsp;&nbsp;&nbsp;名:</strong>
     <input type="text" name="user.name" class="tablestyle" id="user.name"  style="width:200px"><br>
    <strong>密&nbsp;&nbsp;&nbsp;&nbsp;码:</strong>
     <input type="password" name="user.password" class="tablestyle" id="user.password"  style="width:200px"><br>
       <input type="submit", name ="login" value="登录" class="onmouseout"
       onmouseover="this.className='onmouseover'"
       onmouseout="this.className='onmouseout'">    
         
      <a href="<%=path %>">找回密码</a>
      <a href="<%=path %>/reg.jsp">注册</a>
     </form>
    </div>

web.xml如下:

 <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
   <servlet-name>UpLoadPic</servlet-name>
   <servlet-class>com.poscard.Util.UpLoadPic</servlet-class>
  </servlet>
  <servlet-mapping>
   <servlet-name>UpLoadPic</servlet-name>
   <url-pattern>/UpLoadPic1</url-pattern>
  </servlet-mapping>
  
  <filter>
      <filter-name>struts2</filter-name>
      <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>



   
  <!-- spring -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:/beans.xml
</param-value>
</context-param>


现在的问题是,当我点击注册超链接时,会跳转到reg.jsp。但是后台报错:

[http-8099-1] WARN  org.apache.struts2.dispatcher.Dispatcher  - Could not find action or result
There is no Action mapped for action name null. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:177)
at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)


at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:458)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:662)


[最优解释]
那就可能是你的reg.jsp里面发出了一个null请求
[其他解释]
你本身就在当前路径下的,所以这个<%=path %>不需要加
[其他解释]
各位大大怎么还不出现?
[其他解释]
查看一下你的struts.xml配置的action跳转路径对否?
[其他解释]
我这只是个超链接啊,struts里面写的是按钮的跳转页面啊
[其他解释]
<a href="<%=path %>/reg.jsp">注册</a>
     </form>
链接放在form外面试试
[其他解释]
你这个注册按钮只是个跳转链接,可以不用包在form中的
[其他解释]
不放在form里也是报一样的错误。。。。
[其他解释]
你在浏览器里直接访问reg.jsp,看会不会报那个错误
[其他解释]
用火狐浏览器看点击那个链接后发出了几个请求
[其他解释]
引用:
你在浏览器里直接访问reg.jsp,看会不会报那个错误

直接访问也报错。。。
[其他解释]
两个解决办法:
1. 你在后台加个方法,跳转到注册的页面方法,然后再struts.xml配置一下你的页面的路径就好了,这样你的路径问题就统一了。(这个方法对你初始化一下页面信息比较有用,比如你需要一个查出来的列表展示在页面什么的。)
2.直接作为一个单纯的链接放在页面上。这个对路径的要求比较高了。一定要保证路径的正确性。
<%=path %>/reg.jsp这个就是你原始的跳转的路径?
<%=path %>这个是指的完全的路径是什么呢。

[其他解释]
对于楼上的第一种方法我理解,也这样做过。
第二种方法的path就是在JSP页面的开头写的
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
[其他解释]
吧struts.xml里面的东西复制出来看看
------其他解决方案--------------------



<struts>
   <!-- 查询用户部门 -->
    <package name="querydept" namespace="" extends="struts-default">
     <action name="querydept" class="QueryDeptAction" method="queryDept">
      <result>/depttree.jsp</result>
     </action>
    </package>

    
    <package name="upload" namespace="" extends="struts-default">
     <action name="upload" class="com.poscard.action.UploadAction">
       <result>reg.jsp</result>
     </action>
    </package>

    <package name="login" namespace="" extends="struts-default" >
       <action name="login" class="LoginAction">
   <result>/main.jsp</result>
   <result name="error">/index.jsp</result>
   </action>  
    </package>
  <!-- 跳转到查询页面 -->
    <package name="querypage" extends="struts-default">
      <action name="querypage" class="QueryAction" method="queryPage">
       <result>/query.jsp</result>
       <result name="error">/index.jsp</result>
      </action>
      
    </package>
  <!-- 跳转到新增界面 -->
    <package name="add" extends="struts-default">
     <action name="add" class="AddAction" method="AddPage"  >
      <result>/add.jsp</result>
      <result name="error">/index.jsp</result>
     </action>
    </package>
  <!-- 查询数据 --> 
    <package name="querydata" namespace="" extends="struts-default" >

       <action name="querydata" class="QueryAction" method="queryData">
   <result>/querydatasuccess.jsp</result>
   <result name="error">/error.jsp</result>
   </action>         
    </package>    

    <package name="update" namespace="" extends="struts-default">       
      <action name="query" class="UpdateAction" method="queryAccount">
        <result name="update">/update.jsp</result>
        <result name="error">/error.jsp</result>
      </action>
           
      <action name="update" class="UpdateAction" method="update">
       <result type="redirect">


        /queryall!queryandpage.action
       </result>
       <result name="error">
        /updateerror.jsp
       </result>
      </action>
      <!-- 根据ACCID查询 -->
      <action name="updateByaccid" class="UpdateAction" method="updateByaccid">
       <result name="success">/updatesuccess.jsp</result>
      </action>
    </package>
     
     <!-- 查询全部数据 --> 
    <package name="queryall" namespace="" extends="struts-default" >
       <action name="queryall" class="QueryAllAction" method="queryandpage">
   <result>/pagebean.jsp</result>
   <result name="error">/index.jsp</result>
   </action>  
    </package>    
    
    
    <package name="addAccoInfo" namespace="" extends="struts-default">
     <action name="addAccoInfo" class="AddAction" method="Add">
      <result>
        /addsuccess.jsp
      </result>
      <result name="error">
       /adderror.jsp
      </result>
     </action>
    </package>   
    
    <package name="delete" namespace="" extends="struts-default">
        <action name="deleteacco" class="DeleteAction" method="delete">
          <result name="success" type="redirect">
           /queryall!queryandpage.action
         </result>
        </action>
    
    </package>
</struts>


[其他解释]
确实如楼上所说,我的一个img标签发出请求,谢谢解答。结贴了。
[其他解释]
你每个请求对应一个package,你要让请求知道你是请求的哪个package中的action吧
你试试<form action="login/login" id="login" method="post"  onsubmit="return isNull();">

热点排行