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.javapackage 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.javapackage 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
<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.javapackage 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.javapackage 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
把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
struts.jar antlr.jar
commons-beanutils.jar commons-digester.jar
commons-fileupload.jar commons-logging.jar
commons-validator.jar jakarta-oro.jartomcat4.1 和 tomcat5.5 下测试是同样问题 struts 1.2
把这个/LOGIN.DO改成/LOGIN.DO.DO试试
改為
<action name="loginForm" path="/login"
是指的在/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。
要是方便把程序发给我 [email protected] 我试下