网上的例子,Myeclipse 6.5+struts1.1搭建好条件后,建立JAVA WEB PROJECT,名称为hello。在src文件夹建立一个com.cn包:
TestAction.java
package com.cn;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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 formBean.LoginForm;
/* 友情提示;如果execute()方法没有写正确,不会包任何异常,
 * 就是得不到数据
 * @author gengjihui
 */
public class TestAction extends Action {
 public ActionForward execute(ActionMapping mapping,
   ActionForm form,HttpServletRequest request,
   HttpServletResponse reponse){
  System.out.println("@@@@@@检测是否能执行@@@@@@@");
  LoginForm loginform = (LoginForm) form;//
  String username = loginform.getUsername();
  String password = loginform.getPassword();
   //打印输出,检验是否正确
    System.out.println("得到的姓名是"+username);
    System.out.println("得到的密码是"+password);
  return null;  
 }
}
src文件夹建立一个formBean包,再建立一个LoginForm.java:
package formBean;
import org.apache.struts.action.ActionForm;
public class LoginForm extends ActionForm{
 /**
 * 
 */
String username;
 String password;
 public String getPassword(){
  return password;
 }
 public void setPassword(String password){
  this.password = password;
 }
 public String getUsername() {
  return username;
 }
 public void setUsername(String username){
  this.username = username;
 }
}struts-config.xml内
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation
//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"><struts-config>
 
  <form-beans >
    <form-bean name="LoginForm" type="formBean.LoginForm" />  
  </form-beans>  <action-mappings >
    <action
      name="LoginForm"
      path="/Test"
      scope="request"
      type="com.cn.TestAction"
      input="/login.jsp">       
    </action>
   
  </action-mappings> 
</struts-config>web.xml
<?xml version="1.0" encoding="GB2312"?><!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
  <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>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>    <taglib>
        <taglib-uri>/WEB-INF/struts-html</taglib-uri>
        <taglib-location>/WEB-INF/struts-html.tld</taglib-location>    </taglib>
</web-app>login.jsp:文件名称正确
<%@ page language="java" import="" pageEncoding="utf-8"%>
<%@ taglib uri="WEB-INF/struts-html.tld" prefix="html"%>
 
<html>
 <head>
  <title>JSP for EditForm form</title>
 </head>
 <body>
  <html:form action="Test.do" method="GET">
         username<html:text property="username" /><br>
         password<html:password property="password"/><br>
          <html:submit/><html:cancel/>
        </html:form>
 </body>
</html>启动便出错,Add and Remove deployments的方法也不行,总是出现The requested resource (/hello/) is not available.的错误。
看到配置文件中有path=/Test,于是尝试过把src名称改为Test,还是不行。

解决方案 »

  1.   

    好像是标签的问题吧  我用Struts标签的时候 用*.action也不行 你把错误信息打出来看看
      

  2.   

    貌似没有错误信息,看如下。然后就显示Status report,The requested resource (/hello/) is not available.了。2楼的朋友能解释的详细点吗?好人做到底嘛~2010-4-5 11:32:11 org.apache.catalina.core.AprLifecycleListener init
    信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: E:\MyEclipse\bin;E:\MyEclipse\myeclipse\eclipse\plugins\com.genuitec.eclipse.easie.tomcat.myeclipse_6.5.0.zmyeclipse650200806\tomcat\bin
    2010-4-5 11:32:11 org.apache.coyote.http11.Http11Protocol init
    信息: Initializing Coyote HTTP/1.1 on http-8080
    2010-4-5 11:32:11 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 784 ms
    2010-4-5 11:32:11 org.apache.catalina.core.StandardService start
    信息: Starting service Catalina
    2010-4-5 11:32:11 org.apache.catalina.core.StandardEngine start
    信息: Starting Servlet Engine: Apache Tomcat/6.0.13
    2010-4-5 11:32:13 org.apache.struts.util.PropertyMessageResources <init>
    信息: Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true
    2010-4-5 11:32:13 org.apache.struts.util.PropertyMessageResources <init>
    信息: Initializing, config='org.apache.struts.action.ActionResources', returnNull=true
    2010-4-5 11:32:18 org.apache.struts.action.ActionServlet initChain
    信息: Loading chain catalog from jar:file:/E:/MyEclipse%20Codes/.metadata/.plugins/com.genuitec.eclipse.easie.tomcat.myeclipse/tomcat/webapps/Resume/WEB-INF/lib/struts-core-1.3.10.jar!/org/apache/struts/chain/chain-config.xml
    2010-4-5 11:32:22 org.apache.struts.action.ActionServlet initChain
    信息: Loading chain catalog from jar:file:/E:/MyEclipse%20Codes/.metadata/.plugins/com.genuitec.eclipse.easie.tomcat.myeclipse/tomcat/webapps/test2/WEB-INF/lib/struts-core-1.3.10.jar!/org/apache/struts/chain/chain-config.xml
    2010-4-5 11:32:23 org.apache.struts.validator.ValidatorPlugIn initResources
    信息: Loading validation rules file from '/org/apache/struts/validator/validator-rules.xml'
    2010-4-5 11:32:23 org.apache.struts.validator.ValidatorPlugIn initResources
    信息: Loading validation rules file from '/WEB-INF/validation.xml'
    2010-4-5 11:32:24 org.apache.coyote.http11.Http11Protocol start
    信息: Starting Coyote HTTP/1.1 on http-8080
    2010-4-5 11:32:24 org.apache.jk.common.ChannelSocket init
    信息: JK: ajp13 listening on /0.0.0.0:8009
    2010-4-5 11:32:24 org.apache.jk.server.JkMain start
    信息: Jk running ID=0 time=0/63  config=null
    2010-4-5 11:32:24 org.apache.catalina.startup.Catalina start
    信息: Server startup in 12941 ms
      

  3.   

    The requested resource (/hello/) is not available.
    红色的是什么东西啊 怎么没在代码中看见hello
      

  4.   

    System.out.println("得到的密码是"+password);
      return null;  
     }
    }该为return mapping.forwardAction()
      

  5.   

    也不行而且mapping.forwardAction()这个方法不存在啊
      

  6.   

    Action类的execute()方法,返回值为ActionForward类型。 ActionForward对象是一种配置对象,代表了Web资源,可以是JSP页面,Servlet以及Action。 其对象映射的是配置文件struts-config.xml中的<forward>元素,封装了目标响应页面的URI。 主要属性有:Ø  Name:本ActionForward对象的标示,在Action Bean类的execute()方法中ActionMapping对象的findForward()方法就是根据此表示来查找相应的ActionForward对象的。Ø  Path:目标响应页面的URI;Ø  Redirect: 标明页面转向的方式。