我刚开始学习struts2 今天做了个简单的login.jsp的测试页面,老是出现404错误找不到响应的页面,我估计是配置问题 但是花了几个小时,也参照网上的资料,还是成功不了,实在是没办法了,求各位指教一下:
login.jsp
...... <body>
<form action="login.action" method="post">
uesrname:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" name="submit" value="提交"> </form>
</body>
...... result.jsp
......
<body>
username:${requestScope.username}
password:${requestScope.password}
</body>
......
相应的LoginAction // struts2 后的action 不用像struts1继承相应的类吗?
package com.test.action;public class LoginAction {
......
}配置struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
<package name="struts2" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/result.jsp</result>
</action>
</package>
</struts>web.xml:<?xml version="1.0" encoding="UTF-8"?>
<web-app 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.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>我通过 http://127.0.0.1:8080/struts2/login.jsp 可以访问login.jsp 页面,点提交按钮后,出现404错误:The requested resource (/struts2/login.action) is not available. 请各位给我指教下我的配置有问题吗 ?另外请请有经验的高手给我点相关建议 谢谢谢谢环境:jdk 1.6 tomcat 5.5 myeclipse 6.0
login.jsp
...... <body>
<form action="login.action" method="post">
uesrname:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" name="submit" value="提交"> </form>
</body>
...... result.jsp
......
<body>
username:${requestScope.username}
password:${requestScope.password}
</body>
......
相应的LoginAction // struts2 后的action 不用像struts1继承相应的类吗?
package com.test.action;public class LoginAction {
......
}配置struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
<package name="struts2" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/result.jsp</result>
</action>
</package>
</struts>web.xml:<?xml version="1.0" encoding="UTF-8"?>
<web-app 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.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>我通过 http://127.0.0.1:8080/struts2/login.jsp 可以访问login.jsp 页面,点提交按钮后,出现404错误:The requested resource (/struts2/login.action) is not available. 请各位给我指教下我的配置有问题吗 ?另外请请有经验的高手给我点相关建议 谢谢谢谢环境:jdk 1.6 tomcat 5.5 myeclipse 6.0
究竟是什么原因
配置的好象都对啊
是不是对TOMCAT 和JDK 版本有要求啊
因为struts-default.xml文件中定义了bean,result,interceptor等内容,而且,你的package节点是继承自struts-dafault包的
就是<package extends="struts-default">这句,因为struts-default这个包是在struts-default.xml文件中定义的,
所以在项目启动时,因为你的struts.xml文件里没有不合语法的地方,所以解析时没问题,login.jsp页面可以访问,但是当提交请求
到login.action这个url时,框架会找name属性为login的action节点,这个时候,要读取继承的包struts-default的配置,但是文件
没有被包含进来,所以出错了。
...... <body>
<form action="login.action" method="post">
<struts>
<package name="struts2" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result name="success">/result.jsp </result> 看下你的配置,struts.xml里面name="login",但你jsp页面提交的却是action="login.action".
页面那每问题,struts2里的url后缀默认是action,也可以是jspa,这个可以struts.properties里配置
如果想省略后缀,可以使用struts2里提供的form标签
// struts2 后的action 不用像struts1继承相应的类吗?
可以是一个pojo 也可以继承ActionSupport 也可以实现Action 接口 ActionSupport 实现了Action接口