日期:2014-05-20  浏览次数:20874 次

struts2发布时报错404
我是个超级新手,看了好多都是说路径问题,但是我还是不会调,能不能指条明路?ACTION是放在了一个叫com的包里,然后工程名是FirstTest,请问我需要改进哪里?非常感谢。

这是stuts.xml页面:
<package name="body" extends="struts-default" namespace="/">
<action name="/com/NewsList" class="com.NewsAction" method="getAllNews">
<result name="index">/WEB-INF/jsp/index.jsp</result>
</action>



这是web.jsp代码:
<?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">

<!-- Spring config file -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/appctx.xml</param-value>
</context-param>

<!--Startup spring-->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>


<!-- Config struts2 filter -->
<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>

  <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>


这是index.jsp的部分内容:
<body>
  <s:form name="NewsList" action="/com/NewsList.do" >
  <center><br />
  <h2>NEWSLIST</h2>
 
  <table border="1">
  <tr bgcolor="#33CCFF">
  <td align="center">NEWSID</td>
  <td align="center">NEWSTITLE</td>
  <td align="center">NEWSCONTENT</td>
  <td align="center">NEWSLASTTIME</td>
  <td align="center">EDITNEWS</td>
  <td align="center">DELETNEWS</td>
  </tr>

------解决方案--------------------
你是第一次访问就报404吗?那你看下web目录下面是不是有index.jsp文件
但是看你struts.xml里面配的index.jsp文件又是放在/WEB-INF/jsp/目录下面的,我不太清楚你是不是两个目录下面都有index.jsp文件,但如果不是,建议你在web目录下放一个index.jsp
------解决方案--------------------
你写的有点乱哦,3个问题:
1.你把stuts.xml和index.jsp中的action都改成NewsList.action
2.你要确定web-inf/jsp文件夹下面要有index.jsp
3(也是最重要的)struts默认拦截*.action,对于新手,你最好<url-pattern>*.action</url-pattern>
然后估计就没问题了
------解决方案--------------------
<s:form name="NewsList" action="/com/NewsList.do" >
  
后面不需要加.do
------解决方案--------------------
<action name="/com/NewsList" class="com.NewsAction" method="getAllNews">

name属性中最好别用/,改成其他的
比如

<action name="NewsList" class="com.NewsAction" method="getAllNews">