刚学习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 也不行
希望有好心人帮忙解决下。
在页面上面加上
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
form的 action里面写
action="<%=basePath%>login"
你那个result需要加上pages/xxx.jsp
from里面action设置url不对,
/aboutus.jsp
/contactus.jsp
根据3楼说的修改后,进入首页后控制台不再显示警告。
但是点击登录后依然无法找到
根据2楼的修改后进入index页面他就报错了
打错了,是根据1楼改的报错了, 2楼的改完没有警告了但是还是找不到action
namespace不要写。直接呢?
不行你就 重建一个工程再试试。
把pages改成struts2就可以了
引入commons-lang3-3.1.jar、javassist-3.9.0.jar这两个jar
我是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
我希望大家在遇到问题并解决后都能把自己的解决方法贴出来分享,而不是获得答案之后就消失匿迹-------一位菜鸟程序员的心声.