笔者只用Struts2实现数据库的查询
struts.xml文件为<?xml version="1.0" encoding="UTF-8"?>
<!-- 指定Struts配置文件的DTD信息 -->
<!DOCTYPE struts PUBLIC
 "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" 
 "http://struts.apache.org/dtds/struts-2.1.dtd">
 <struts>
  <package name="struts" extends="struts-default">
<action name="selectpage" class="controller.Select" method="selectMessage">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
  </package>
 </struts>JDBC连接数据库没有错误。但部署服务器运行该工程,则出现如下错误:type: Status reportmessage: /dbSelect/selectpage.actiondescription: The requested resource (/dbSelect/selectpage.action) is not available.
这错误可能是因为什么原因引起的呢?

解决方案 »

  1.   

    你把jsp页面代码上传一部分看看!!
      

  2.   

    class="controller.Select"是这个类接受参数吗?最好将action也粘贴出来
    <result name="success">/success.jsp</result>
    里面的斜杠不要把!
    <result name="success">success.jsp</result>
      

  3.   

    (/dbSelect/selectpage.action),你的Action是这个路径嘛?
    从你配的Action来看,应该是/selectpage.action这个吧,因为你的Action貌似放置在默认的namespace下的
      

  4.   

    所以解决方法有2个
    1.在JSP页面里调用Action的路径改成/selectpage.action
    2.<package name="struts" extends="struts-default">改成
    <package name="struts" namespace="dbSelect" extends="struts-default">
    个人建议第一种,方便,刷新下界面就可以重新运行了,若是第二种,需要重新部署
      

  5.   

    index.jsp:<%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>主页</title>
    </head>
    <body>
    <a href="selectpage.action">查询</a>
    </body>
    </html>
    success.jsp:<%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>主页</title>
    </head>
    <body>
    sgdfgfsdgfsdgsd
    <table border="1">
    <c:forEach items="${message}" var="a">
    <tr>
    <td>${a.mid }</td>
    <td>${a.reciever }</td>
    <td>${a.revieveDate }</td>
    <td>${a.acceptor }</td>
    <td>${a.messageText }</td>
    </tr>
    </c:forEach>
    </table></body>
    </html>Select.java:package controller;import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;import voo.MessageInfo;import db.Condb;public class Select extends ActionSupport { public String selectMessage(){

    Condb db=new Condb();
    Connection con=db.getCon();
    PreparedStatement pstmt=null;
    ResultSet rs=null;
    ArrayList arr=new ArrayList();

    System.out.println("jasfja;f f");
    try {
    pstmt=con.prepareStatement("select * from MessageInfo");
    rs=pstmt.executeQuery();
    while(rs.next()){
    MessageInfo m=new MessageInfo();
    m.setMid(rs.getInt(1));
    m.setReciever(rs.getString(2));
    m.setRecieveDate(rs.getDate(3));
    m.setAcceptor(rs.getString(4));
    m.setMessageText(rs.getString(5));
    arr.add(m);
    }
    ActionContext.getContext().put("message", arr);
    return "success";
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    return "error";
    }
    }
    }各位大侠,互相学习下~~
      

  6.   

    错误是找不到对应的action。在<package name="struts" extends="struts-default">中加上namespace="/"试试。
      

  7.   

    问题已经解决啦~~删除Server后,重新添加,启动,部署工程就搞定啦~~