2 u014019676 u014019676 于 2015.06.19 16:23 提问

struts2 action找不到404 1C

刚学习struts2,做到登录功能的时候登录按钮点击之后就显示action404的页面
我的工程结构是这样的
图片说明

web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>ieZhan</display-name>
  <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
    </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <welcome-file-list>  
    <welcome-file>index.jsp</welcome-file>  
  </welcome-file-list>  
</web-app>

struts.xml


<package name="struts2" extends="struts-default" namespace="/">
      <action name="login" class="com.login.struts2.loginAction">
          <result name="success" type="redirect">/aboutus.jsp</result>
          <result name="failer" type="redirect">/contactus.jsp</result>    
      </action>
</package>

jsp页面中的form代码

 <s:form action="login" >
            <ul class="login_cont">
                <li class="f14">会员登录</li>
                <li class="login_ipt"><p><span class="fl tr">账号:</span><input type="text" class="login_txt fl" name="username"/></p></li>
                <li class="login_ipt"><p><span class="fl tr">密码:</span><input type="password" class="login_txt fl" name="password"/></p></li>
                <li><a href="#" class="fr">忘记登录密码?</a><label><input type="checkbox" class="remember_psw" />记住密码</label></li>
                <li class="mt10"><button class="login_button login_button_signup" type="submit" >登录</button></li>
            </ul>
            </s:form>

在启动tomcat的时候有出现警告
六月 19, 2015 3:59:32 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: No configuration found for the specified action: 'loginAction' in namespace: '/pages'. Form action defaulting to 'action' attribute's literal value.
六月 19, 2015 3:59:33 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: No configuration found for the specified action: 'loginAction' in namespace: '/pages'. Form action defaulting to 'action' attribute's literal value.

我看了下在页面上的action的url是
图片说明

我试过加namespace=“/” 路径变成/ieZhan/login 也不行
希望有好心人帮忙解决下。

9个回答

bulusli3
bulusli3   Ds   Rxr 2015.06.19 16:47

你那个result需要加上pages/xxx.jsp

qq_25831381
qq_25831381   2017.05.22 22:17

我是Struts的初学者,这个问题我也遇到了,在网上找了很多方法,都说是路径问题,仔细检查后发现我的路径写的没有错,最后找到了问题是struts核心过滤器的问题,就是在web.xml中配置的Struts的信息


struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter


struts2
/*

一开始是这样配置的,我用的是struts2.3其中的这样是不对的,改成org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,就可以了,我这是这样的,我也是在以为网友的提示下发现的问题,以下是链接

https://zhidao.baidu.com/question/559062752.html

我希望大家在遇到问题并解决后都能把自己的解决方法贴出来分享,而不是获得答案之后就消失匿迹-------一位菜鸟程序员的心声.

francislpx
francislpx   2015.06.19 16:41
在页面上面加上
<%  
String path = request.getContextPath();  
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
%> 

form的  action里面写
action="<%=basePath%>login"
u014019676
u014019676 在form的action里加了这个后打开index就报500的错误了 显示说这行有问题
2 年多之前 回复
francislpx
francislpx 再加上 楼下 lhl_lqc的答案
2 年多之前 回复
xiaowei20091124
xiaowei20091124   2015.06.19 17:43

from里面action设置url不对,

/aboutus.jsp
/contactus.jsp


u014019676
u014019676   2015.06.20 08:15

根据3楼说的修改后,进入首页后控制台不再显示警告。
但是点击登录后依然无法找到
图片说明

根据2楼的修改后进入index页面他就报错了

图片说明

u014019676
u014019676   2015.06.20 08:16

打错了,是根据1楼改的报错了, 2楼的改完没有警告了但是还是找不到action

u011042188
u011042188   2015.06.21 21:51

namespace不要写。直接呢?
不行你就 重建一个工程再试试。

u014019676
u014019676 我重建一个新的工程,用网上的例子发现运行起来还是找不到action
2 年多之前 回复
yeqiurong
yeqiurong   2015.06.22 15:00

把pages改成struts2就可以了

genz_d
genz_d   2016.11.24 14:10

引入commons-lang3-3.1.jar、javassist-3.9.0.jar这两个jar

Csdn user default icon
上传中...
上传图片
插入图片