首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

【】struts例子 找了好几天就是找不到异常

2012-01-03 
【求助】struts例子找了好几天就是找不到错误login.jsp%@pagecontentType text/htmlcharsetGBK %%@t

【求助】struts例子 找了好几天就是找不到错误
login.jsp

<%@   page   contentType= "text/html;charset=GBK "%>

<%@   taglib   uri= "/WEB-INF/tlds/struts-html.tld "   prefix= "html "%>
<html:html>
<head> <title> login </title> </head>
<body>
<html:form   action= "/login.do "   method= "post ">
<table>
<tr>
<td> 用户名: </td> <td> <html:text   property= "userName "/> </td>
</tr>
<tr>
<td> 密     码: </td> <td> <html:password   property= "userPwd "/> </td>
</tr>
<tr>
<td> <html:submit   value= "登   录 "/> </td> <td> <html:reset   value= "重   置 "/> </td>
</tr>
</table>
</html:form>
  </body>
</html:html>


web.xml
<?xml   version= "1.0 "   ?>
<web-app   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 "   version= "2.4 ">
       
        <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>
                <load-on-startup> 1 </load-on-startup>
        </servlet>
        <servlet-mapping>
                <servlet-name> action </servlet-name>
                <url-pattern> *.do </url-pattern>
        </servlet-mapping>
</web-app>

struts-config.xml
<?xml   version= "1.0 "   ?>
<!DOCTYPE   struts-config   PUBLIC   "-//Apache   Software   Foundation//DTD   Struts   Configuration   1.2//EN "   "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd ">
<struts-config>
        <form-beans>
                <form-bean   name= "loginForm "   type= "org.huoshan.struts.test1.form.LoginForm "   />
        </form-beans>
        <action-mappings>
                <action   name= "loginForm "   path= "/login.do "   type= "org.huoshan.struts.test1.action.LoginAction ">
                        <forward   name= "success "   path= "/success.jsp "   />


                        <forward   name= "failure "         path= "/failure.jsp "   />
                </action>
        </action-mappings>
</struts-config>


LoginAction.java

package   org.huoshan.struts.test1.action;

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   org.huoshan.struts.test1.form.LoginForm;

public   class   LoginAction   extends   Action   {

        public   ActionForward   execute(ActionMapping   mapping,   ActionForm   form,   HttpServletRequest   request,   HttpServletResponse   response)   throws   Exception   {
                LoginForm   loginForm=(LoginForm)form;
                String   userName=loginForm.getUserName();
                String   userPwd=loginForm.getUserPwd();
                if( "huoshan ".equals(userName)   &&   "121212 ".equals(userPwd))
                {
                        return   mapping.findForward( "success ");
                }else
                {
                        return   mapping.findForward( "failure ");
                }
        }
       

}

LoginForm.java

package   org.huoshan.struts.test1.form;

import   org.apache.struts.action.ActionForm;

public   class   LoginForm   extends   ActionForm   {
        /**
          *   define   id;
          */
        private   String   userName;
        private   String   userPwd;
        public   String   getUserName()   {
                return   userName;
        }
        public   void   setUserName(String   userName)   {
                this.userName   =   userName;
        }
        public   String   getUserPwd()   {
                return   userPwd;
        }
        public   void   setUserPwd(String   userPwd)   {
                this.userPwd   =   userPwd;
        }


       

}

文件结构是这样的
根目录     WebRoot
这里不能发图片
大家可以到这里看看http://bbs.dlu.edu.cn/wForum/bbscon.php?bid=59&id=8023&ap=212     我画的目录结构


将非常非常感谢大家

访问login.jsp时出现下面错误
org.apache.jasper.JasperException:   Cannot   find   ActionMappings   or   ActionFormBeans   collection



[解决办法]
web.xml里面没有对标签定义
[解决办法]
你没有INPUT,你应该把INPUT= "/LOGIN.JSP " 在ACTION中设置
[解决办法]
<action name= "loginForm " path= "/login.do " type= "org.huoshan.struts.test1.action.LoginAction ">
把path= "/login.do "
改成这样path= "/login "
你在web.xml里面已经定义了*.do由ACTIONSERVLET处理吧?


Cannot find ActionMappings or ActionFormBeans collection这种错误还有可能是 包不全或是版本不对(struts的) 也可能是CLASS不存在

建议JSP <html:form action= "/login.do " method= "post ">
action要不写成login.do要不就写成/your webapp name/login.do
[解决办法]
<action name= "loginForm " path= "/login.do " type= "org.huoshan.struts.test1.action.LoginAction "> 加个 propety= "loginForm "试试
[解决办法]
流浪的猴子) 说的可能就是问题的所在 struts-config中不需要再加。do的
[解决办法]
/login.do后面的.do不要,
[解决办法]
<action name= "loginForm " path= "/login.do "
改為
<action name= "loginForm " path= "/login "
[解决办法]
<%@ taglib uri= "/WEB-INF/tlds/struts-html.tld " prefix= "html "%>
是指的在/WEB-INF/tlds/这里去找tld文件,这个路径是个逻辑路径,而这个路径没有在web.xml中定义。
有两种解决方法
1、在web.xml中添加
<taglib>
<taglib-uri> /WEB-INF/tlds/struts-html.tld </taglib-uri>
<taglib-location> /WEB-INF/tlds/struts-html.tld </taglib-location>
</taglib>
将逻辑路径映射为物理路径,虽然写的一样,但意思不同。
2、使用tld文件中的uri
<taglib>
<tlib-version> 1.3 </tlib-version>
<jsp-version> 1.2 </jsp-version>
<short-name> logic </short-name>
<uri> http://struts.apache.org/tags-logic </uri>
<description>
......
</taglib>
因为struts的包中都包含tld文件,即tld文件已经在classpath中了,因此只要引用的uri正确的就没问题。不过需要注意版本,不同版本的uri是不一样的。如struts1.1就是http://jakarta.apache.org/struts/tags-html。

[解决办法]
配置没什么问题,你的配置文件是不是myeclipse自动生成的?

热点排行