关于struts2的最基础问题~~~
这几天在看<<struts2权威指南>>,想学学struts2,问题来了~~我连最基本的helloworld都运行不了,老是报错说:
--------------------------------------------
type Status report
message /struts2qs/Login.action
description The requested resource (/struts2qs/Login.action) is not available.
--------------------------------------------
我的整个文件都是从随书光盘下复制过来的,因该没问题~~
我的环境是tomcat6.0+java5,究竟是什么问题啊???要是我没说清楚的话我再详细说~~~
决绝问题马上给分!!
[解决办法]
最好能贴出struts.xml中的配置及对应的jsp(如果有的话)代码
[解决办法]
你的Struts里面没有体现你的那个Login.action 啊?
把你Struts中的配置文件都调出来!
应该是你的路径写错了!
如果你请求的Action是Login.action的话就必须在配置文件"Struts-Config"中配置一样的action-mappings!
要是还不明白就把那个Struts-Config文件打出来!
[解决办法]
给你看看我的配置:
xwork.xml
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
<include file="webwork-default.xml" />
<package name="default" extends="webwork-default">
<interceptors>
<interceptor-stack name="modelParamsStack">
<interceptor-ref name="params" />
<interceptor-ref name="model-driven" />
</interceptor-stack>
</interceptors>
<action name="login"
class="com.dhcc.webwork.action.LoginAction">
<result name="success" type="dispatcher">
<param name="location">/main.jsp</param>
</result>
<result name="loginfail" type="dispatcher">
<param name="location">/index.jsp</param>
</result>
<interceptor-ref name="modelParamsStack" />
</action>
</package>
</xwork>
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>webwork</display-name>
<filter>
<filter-name>webwork</filter-name>
<filter-class>
com.opensymphony.webwork.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>freemarker</servlet-name>
<servlet-class>
com.opensymphony.webwork.views.freemarker.FreemarkerServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>freemarker</servlet-name>
<url-pattern>*.ftl</url-pattern>
</servlet-mapping>
<taglib>
<taglib-uri>webwork</taglib-uri>
<taglib-location>/WEB-INF/webwork.tld</taglib-location>
</taglib>
</web-app>
希望对你有帮助
[解决办法]
struts.xml
<action name= "GetBooks" class= "lee.GetBooksAction">
<result name= "login">/login.jsp</result>
<result name= "success">/showBook.jsp</result>
</action>
这里说明两个问题:
1.你在有一个lee.GetBooksAction里面有个GetBooks的方法。
2.成功跳转到showbook.jsp.
所以相应的,你必须有上面的东西,至于你的Action就不管你怎么做判断了。
值得注意的一点是:jsp是这样写的:
<s:form action="Login" method="post">
</s:form>
[解决办法]
1.新建web工程
2.把commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.jar
xwork-2.0.4.jar
(红色的视版本而定)加入lib文件夹下面
3.配置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"> <display-name>Struts2Example</display-name> <filter> <filter-name>Struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter> <filter-name>struts-cleanup</filter-name> <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> </filter> <filter-mapping> <filter-name>Struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts-cleanup</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>/index.jsp</welcome-file> </welcome-file-list></web-app>