在tomcat的ROOT文件包下建立了test文件包和一些文件,结构如下:test
|- login.jsp
|- wel.jsp
|- error.jsp
|- WEB-INF
|- web.xml
|- classes
| |- LoginAction.class
| |- struts.xml
|- lib
|- 就是放 struts lib 里面的五个文件: commons-logging,freeer,ognl,struts2-core,xwork-core
----------------------------------------------------------------------------------------------------代码如下:
---------
login.jsp
---------
<form action="login.action" method="post">
姓名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form>
-------
web.xml
-------
<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>
----------------
LoginAction.java
----------------
public class LoginAction{
private String username;
private String password;
public void setUsername(String username){
this.username = username;
}
public void setPassword(String password){
this.password = password;
}
public String getUsername(){
return this.username;
}
public String getPassword(){
return this.password;
}
public String execute() throws Exception{
if(getUsername().equals("zhangsan") &&
getPassword().equals("1234")){
return "success";
}else{
return "error";
}
}}----------
struts.xml
----------<struts>
<package name="ok" extends="struts-default" namespace="test">
<action name="login" class="LoginAction">
<result name="success">/wel.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package></struts>------------------------------------------------------------------------
输入地址:http://localhost:8080/test/login.jsp,提交之后,报错如下:
HTTP Status 404 - /test/login.actiontype Status reportmessage /test/login.actiondescription The requested resource (/test/login.action) is not
available.Apache Tomcat/6.0.35我怀疑是struts.xml那里有地方写错了,但是找不出来,求助大侠。
|- login.jsp
|- wel.jsp
|- error.jsp
|- WEB-INF
|- web.xml
|- classes
| |- LoginAction.class
| |- struts.xml
|- lib
|- 就是放 struts lib 里面的五个文件: commons-logging,freeer,ognl,struts2-core,xwork-core
----------------------------------------------------------------------------------------------------代码如下:
---------
login.jsp
---------
<form action="login.action" method="post">
姓名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form>
-------
web.xml
-------
<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>
----------------
LoginAction.java
----------------
public class LoginAction{
private String username;
private String password;
public void setUsername(String username){
this.username = username;
}
public void setPassword(String password){
this.password = password;
}
public String getUsername(){
return this.username;
}
public String getPassword(){
return this.password;
}
public String execute() throws Exception{
if(getUsername().equals("zhangsan") &&
getPassword().equals("1234")){
return "success";
}else{
return "error";
}
}}----------
struts.xml
----------<struts>
<package name="ok" extends="struts-default" namespace="test">
<action name="login" class="LoginAction">
<result name="success">/wel.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package></struts>------------------------------------------------------------------------
输入地址:http://localhost:8080/test/login.jsp,提交之后,报错如下:
HTTP Status 404 - /test/login.actiontype Status reportmessage /test/login.actiondescription The requested resource (/test/login.action) is not
available.Apache Tomcat/6.0.35我怀疑是struts.xml那里有地方写错了,但是找不出来,求助大侠。
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>/* 改成 *.action
<url-pattern>*.action</url-pattern>后面的action就依靠 *的内容区分。
我看你发的testw文件夹里的文件层次很混乱,不知道是不是向我说的这样的。
刚才我放了个文件包demo到webapps里面,demo里面有个默认的index.jsp文件。输入http://localhost:8080/demo 却无法访问似乎哪里还需要配置一下。汗
---------
login.jsp
---------
<form action="login.action" method="post">
姓名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form> 变红的地方,改为login
|- classes
| |- LoginAction.class
| |- struts.xml
|- lib
这几个文件 放到 WEB-INF 下面去.
然后重启项目试试.
<struts>
<package name="ok" extends="struts-default" namespace="test">
<action name="login" class="LoginAction">
<result name="success">/wel.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package></struts>
login的class地址就是LoginAction?
你先别急,刚开始struts的时候都是这么乱。刚才的那个test,没有META-INF文件夹没事,其他的你要都放对位置才行,然后你的代码需要改:
web.xml中:
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>struts.xml中:改namespace
<struts>
<package name="ok" extends="struts-default" namespace="/test">
<action name="login" class="LoginAction">
<result name="success">/wel.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>login.jsp中:改action路径
<form action="test/login" method="post">
程序又错了 首先 debug 找错 你的这个问题 就是strusts2映射问题 你别搞复杂啦!!
于是我把test/WEB-INF里面的web.xml这个文件删除 http://localhost:8080/test/login.jsp 又可以访问了。就此我认为,是web.xml这个文件有问题。web.xml的源码如下: <web-app 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"
version="3.0"
metadata-complete="true"><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>难道哪里写错了吗?我特别注意了 org.apache.struts2.dispatcher.FilterDispatcher 这个类,可以从struts2-core.jar 里面解压出来,目录没有问题的。看tomcat的日志,有个错误是 严重:Error filterStart百思不得其解。不知道哪里写错了
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
看到 2.3了吗?我的是2.0 我改成2.3之后就可以了!!!!!!!!!!!!!!真是疯了。这是为神马????????????