zoukankan      html  css  js  c++  java
  • There is no Action mapped for namespace [/] and action name [Login] associated with context path [/e

    近期学习web开发时,就遇到这个令人头疼的问题。

    百度谷歌了N遍,最终在博客http://blog.csdn.net/liu578182160/article/details/17266879中找到了问题的根源。

    开发环境:win7 32位旗舰版,jdk1.7_45,jre7,eclipse4.3.1 JavaEE版,tomcat 7.0.42,struts2.3.16.3


    问题出如今web.xml配置

    原web.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="struts2Demo" version="2.4"
     xmlns="http://java.sun.com/xml/ns/j2ee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
      http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
      
      
    
        <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>
    
    </web-app>

    改动后的web.xml:

    <?xml version="1.0" encoding="UTF-8"?>  
    <web-app version="3.0"   
        xmlns="http://java.sun.com/xml/ns/javaee"   
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">  
      <display-name></display-name>   
        
       <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>  
        
      <welcome-file-list>  
        <welcome-file>login.jsp</welcome-file>  
      </welcome-file-list>  
    </web-app>

    关键的差别就在于web-app的version

    (似乎不关这版本号问题,刚试了2.4的web-app,能够执行成功。)


    可能这不是问题的关键,项目改动的地方还有

    原login.jsp:

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'login.jsp' starting page</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    
      </head>
      
      <body>
        <form action="login.action" method="post"><!-- login就是struts.xml里的action的name -->
     
       用户名<input type="text" name="username" />  <!-- username相应LoginAction的username通过set方法传入 -->
       
         密码: <input type="password" name="password" /> <!-- password相应LoginAction的password通过set方法传入 -->
        <input type="submit" name="Submit" value="Submit"/>
        </form>
      </body>
    </html>
    

    改动后的login.jsp:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@taglib prefix="s" uri="/struts-tags" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title><s:text name="loginPage"/></title>
    </head>
    <body>
    
    	<s:form action="login">
    		<s:textfield name="username" key="user"/>
    		<s:textfield name="password" key="pass"/>
    		<s:submit key="login" value="Submit"/>
    	</s:form>
    
    </body>
    </html>


  • 相关阅读:
    第七组(69)团队展示
    结对编程作业
    同步异步和阻塞非阻塞
    TCP和UDP和IP和HTTP和socket
    http协议
    数据库基础知识
    准确的笑话
    Java实现多线程的方式
    HashMap
    HTTPS与HTTP
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/3789884.html
Copyright © 2011-2022 走看看