就是用eclipse+tomcat+struts做的一个东西:页面上上方有个三列的表格,用户可以输入,结果会保存到数据库中。页面下方会列出数据库中的记录,用户可以删除和查找等。
写了个ShowAttackSolutionAction用于显示记录,放在了skin.struts.action目录下。
struts-config.xml中相关的如下:
...
<data-sources>
<data-source key="mysql" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="sutoCommit" value="true"/>
<set-property property="driverClassName" value="com.mysql.jdbc.Driver"/>
<set-property property="url" value="jdbc:mysql://localhost:3306/test"/>
<set-property property="maxCount" value="10"/>
<set-property property="minCount" value="1"/>
<set-property property="username" value="root"/>
<set-property property="password" value="root"/>
</data-source>
</data-sources>
...
<form-bean 
 name="attackSolutionActionForm"
 type="skin.struts.form.AttackSolutionActionForm" />
...
<action path="/ShowAttackSolutionAction"
     type="skin.struts.action.ShowAttackSolutionAction">
     <forward name="success" path="/showAttackSolution.jsp" />
     </action>
...
<message-resources parameter="resources.application" />
...
web.xml相关代码如下:
...
<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
     <param-name>debug</param-name>
     <param-value>2</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
 </servlet>
  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
...
一个进入的jsp代码如下:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<a href="ShowAttackSolutionAction.do">
<bean:message key="message.attacksolutionDB"/>
</a>
struts-config.xml和web.xml文件放在了WEB-INF目录下,lib中也放入了相应的包,为什么会提示:
type Status reportmessage Servlet action is not availabledescription The requested resource (Servlet action is not available) is not available.
help~~谢啦~

解决方案 »

  1.   

    <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    这个加了吗?
      

  2.   

    贴下ACTION,继承的是分发ACTION吗?
      

  3.   

    "<a href="ShowAttackSolutionAction.do">" 
    在前面加个/ 试下即:<a href="/ShowAttackSolutionAction.do">
      

  4.   

    action代码如下,其中AttackSolutionDAO是数据库处理类:
    package skin.struts.action;import java.util.ArrayList;import javax.servlet.ServletContext;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.sql.DataSource;import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;import skin.struts.dao.AttackSolutionDAO;public class ShowAttackSolutionAction extends Action { @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {
    // TODO Auto-generated method stub
    ServletContext context=servlet.getServletContext();
            DataSource ds=(DataSource)context.getAttribute("postgre");
    try {
    AttackSolutionDAO attackSolutionDAO = new AttackSolutionDAO(ds);
    ArrayList arrayList = (ArrayList)attackSolutionDAO.retrieveAllAttackSolution();
    request.setAttribute("allAttackSolution", arrayList);
    return mapping.findForward("success");
    } catch(Exception e) {
    e.printStackTrace();
    return mapping.findForward("failure");
    }
    }}
     有:
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    加了/后不对阿,路径就不再/attack/(web工程文件夹)下了,错误信息就变成了
    type Status reportmessage /ShowAttackSolutionAction.dodescription The requested resource (/ShowAttackSolutionAction.do) is not available