- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Struts 新手,我遵循有关如何创建 Struts Web 应用程序的教程。这是我创建的文件。
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Mon application Struts de tests</display-name>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
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="HelloWorldForm" type="com.hello.HelloWorldFrom" />
<form-bean name="LoginForm" type="com.test.LoginForm.LoginForm"/>
</form-beans>
<action-mappings type="org.apache.struts.action.ActionMapping">
<action path="/helloWorld" type="com.hello" name="HelloWorldForm">
<forward name="success" path="/HelloWorld.jsp" />
</action>
<action path="login" parameter="" input="/index.jsp" scope="request"
name="loginForm" type="com.test.controller.LoginAction">
<forward name="succes" path="/accueil.jsp" redirect="false" />
<forward name="echec" path="/index.jsp" redirect="false" />
</action>
</action-mappings>
index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page language="java" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html:html locale="true">
<head>
<title>authentication</title>
<html:base/>
</head>
<body bgcolor="white">
<html:form action="login" focus="nameUserr">
<table border="0" align="center">
<tr>
<td align="right">
User:
</td>
<td align="left">
<html:text property="nameUserr" size="20" maxlength="20"/>
</td>
</tr>
<tr>
<td align="right">
Password :
</td>
<td align="left">
<html:password property="psdUser" size="20" maxlength="20"
redisplay="false"/>
</td>
</tr>
<tr>
<td align="right">
<html:submit property="submit" value="Submit"/>
</td>
<td align="left">
<html:reset/>
</td>
</tr>
</table>
</html:form>
LoginAction.java
package com.test.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.*;
import com.test.LoginForm.LoginForm;
public class LoginAction extends Action{
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res) throws Exception {
String result = null;
String nomUtilisateur = ((LoginForm) form).getNameUser();
String mdpUtilisateur = ((LoginForm) form).getPsdUser();
if (nameUser.equals("xyz") && psdUser.equals("xyz")) {
result = "succes";
} else {
result = "failure";
}
return mapping.findForward(result);
}
}
LoginForm.java
package com.test.LoginForm;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public class LoginForm extends ActionForm{
String nameUser;
String psdUser;
public String getpsdUser() {
return psdUser;
}
public void setpsdUser(String psdUser) {
this.psdUser= psdUser;
}
public String getnameUser() {
return nameUser;
}
public void setnameUser(String nameUser) {
this.nameUser= nameUser;
}
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
return errors;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
this.psdUser= null;
this.nameUser= null;
}
}
但是运行时出现以下错误
Etat HTTP 500 - javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection
编辑:完整的堆栈跟踪
Report type Exception
Message javax.servlet.ServletException: javax.servlet.jsp.JspException: Can not find ActionMappings gold ActionFormBeans collection
description The server encountered an internal error that prevented it from fulfilling the request.
exception
org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Can not find ActionMappings gold ActionFormBeans collection
org.apache.jasper.servlet.JspServletWrapper.handleJspException (JspServletWrapper.java:549)
org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service (JspServlet.java:339)
javax.servlet.http.HttpServlet.service (HttpServlet.java:727)
Parent cause
javax.servlet.ServletException: javax.servlet.jsp.JspException: Can not find ActionMappings gold ActionFormBeans collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException (PageContextImpl.java:916)
org.apache.jasper.runtime.PageContextImpl.handlePageException (PageContextImpl.java:845)
org.apache.jsp.index_jsp._jspService (index_jsp.java:112)
org.apache.jasper.runtime.HttpJspBase.service (HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service (HttpServlet.java:727)
org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service (JspServlet.java:339)
javax.servlet.http.HttpServlet.service (HttpServlet.java:727)
Parent cause
javax.servlet.jsp.JspException: Can not find ActionMappings gold ActionFormBeans collection
org.apache.struts.taglib.html.FormTag.lookup (FormTag.java:798)
org.apache.struts.taglib.html.FormTag.doStartTag (FormTag.java:506)
org.apache.jsp.index_jsp._jspx_meth_html_005fform_005f0 (index_jsp.java:189)
org.apache.jsp.index_jsp._jspx_meth_html_005fhtml_005f0 (index_jsp.java:143)
org.apache.jsp.index_jsp._jspService (index_jsp.java:99)
org.apache.jasper.runtime.HttpJspBase.service (HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service (HttpServlet.java:727)
org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service (JspServlet.java:339)
javax.servlet.http.HttpServlet.service (HttpServlet.java:727)
Note The complete trace of the mother cause of this error is available in the log files for Apache Tomcat / 7.0.59.
我用谷歌搜索并尝试了所有建议的解决方案,但错误仍然存在。任何想法请。
P.S:我使用 Struts 1.1
最佳答案
struts-config.xml
在你的文件中以 </action-mappings>
结尾而不是<struts-config>
此外,每个文件中都存在许多错误。所以看来您没有尝试验证您的代码是否正确。
1) 在 web.xml
文件
DTD 声明有问题,应该是这样的:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
2) 在 struts-config.xml
文件:
您已将表单 Bean 名称声明为 LoginForm
如 action
中所示您将其用作 loginForm
也没有forward
显示当操作类返回 failure
时您想要执行的操作的声明.
所以代码应该是这样的:
<action path="/login" parameter="" input="/index.jsp" scope="request"
name="LoginForm" type="com.test.controller.LoginAction">
<forward name="succes" path="/accueil.jsp" redirect="false" />
<forward name="echec" path="/index.jsp" redirect="false" />
<forward name="failure" path="/loginFailed.jsp" redirect="false" />
</action>
3) 在 index.jsp
您有多个问题:
a) taglib 声明应如下所示(对于 Struts 1.3.10):
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="logic" %>
b) struts html 自定义标签没有任何名为 locale
的属性index.jsp 还显示您没有关闭 struts html 标记。
检查一下:
<html:html>
......
</html:html>
c) 属性声明:
<html:text property="nameUserr" size="20" maxlength="20"/>
表示表单 bean 有一个名为 nameUserr
的属性但是LoginForm
属性声明为 nameUser
所以将jsp文件中的代码更改为
<html:text property="nameUser" size="20" maxlength="20"/>
4) LoginForm bean 有错误的 getter 和 setter 方法。它们应该是这样的:
public String getNameUser() {
return nameUser;
}
public void setNameUser(String nameUser) {
this.nameUser = nameUser;
}
public String getPsdUser() {
return psdUser;
}
public void setPsdUser(String psdUser) {
this.psdUser = psdUser;
}
5) 终于在 LoginAction
你的action类比较不正确,应该是:
String nomUtilisateur = ((LoginForm) form).getNameUser();
String mdpUtilisateur = ((LoginForm) form).getPsdUser();
if (nomUtilisateur.equals("xyz") && mdpUtilisateur.equals("xyz")) {
result = "succes";
} else {
result = "failure";
}
关于java - etat HTTP 500 - javax.servlet.ServletException : javax. servlet.jsp.JspException:找不到 ActionMappings 或 ActionFormBeans 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29407132/
据我了解,HTTP POST 请求的正文大小没有限制。因此,客户端可能会在一个 HTTP 请求中发送 千兆字节 的数据。现在我想知道 HTTP 服务器应该如何处理此类请求。 Tomcat 和 Jett
在了解Web Deploy我遇到了一些讨论 http://+:80 和 http://*:80 的 netsh.exe 命令。这些是什么意思? 最佳答案 引自URLPrefix Strings (Wi
假设我有一个负载均衡器,然后是 2 个 Web 服务器,然后是一个负载均衡器,然后是 4 个应用程序服务器。 HTTP 响应是否遵循与 HTTP 请求服务相同的路径? 最佳答案 按路径,我假设您是网络
我有一个带有 uri /api/books/122 的资源,如果在客户端为此资源发送 HTTP Delete 时该资源不存在,那么相应的响应代码是什么这个 Action ?是不是404 Not Fou
是否有特定的(或约定的)HTTP 响应消息(或除断开连接之外的其他操作)来阐明服务器不接受 pipelined HTTP requests ? 我正在寻找能让客户端停止流水线化它的请求并分别发送每个请
在了解Web Deploy我遇到了一些讨论 http://+:80 和 http://*:80 的 netsh.exe 命令。这些是什么意思? 最佳答案 引自URLPrefix Strings (Wi
我有一个带有 uri /api/books/122 的资源,如果在客户端为此资源发送 HTTP Delete 时该资源不存在,那么相应的响应代码是什么这个 Action ?是不是404 Not Fou
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我使用 Mule 作为 REST API AMQP。我必须发送自定义请求方法:“PRINT”,但我收到: Status Code: 400 Bad Request The request could
我需要针对具有不同 HTTP 响应代码的 URL 测试我的脚本。我如何获取响应代码 300、303 或 307 等的示例/示例现有 URL? 谢谢! 最佳答案 您可以使用 httpbin为此目的。 例
我正在尝试编写一个程序来匹配 HTTP 请求及其相应的响应。似乎在大多数情况下一切都运行良好(当传输完全有序时,即使不是,通过使用 TCP 序列号)。 我发现的唯一问题是当我有流水线请求时。在那之后,
RESTful Web Services鼓励使用 HTTP 303将客户端重定向到资源的规范表示。它仅在 HTTP GET 的上下文中讨论主题。 这是否也适用于其他 HTTP 方法?如果客户端尝试对非
当使用chunked HTTP传输编码时,为什么服务器需要同时写出chunk的字节大小并且后续的chunk数据以CRLF结尾? 这不会使发送二进制数据“CRLF-unclean”和方法有点多余吗? 如
这个问题在这里已经有了答案: Is it acceptable for a server to send a HTTP response before the entire request has
如果我向同一台服务器发出多个 HTTP Get 请求并收到每个请求的 HTTP 200 OK 响应,我如何使用 Wireshark 判断哪个请求映射到哪个响应? 目前看起来像是发出了一个 http 请
func main() { http.HandleFunc("/", handler) } func handler(w http.ResponseWriter, r http.Request
我找不到有值(value)的 NodeJS with Typescript 教程,所以我在无指导下潜入水中,果然我有一个问题。 我不明白这两行之间的区别: import * as http from
问一个关于Are HTTP headers case-sensitive?的问题,如果 HTTP 方法区分大小写,大多数服务器如何处理“get”或“post”与“GET”或“POST”? 例如,看起来
我正在使用ASP.NET,在其中我通过动词GET接收查询,该应用程序专用于该URL。 该代码有效,但是如果用户发送的密码使http 200无效,请回答我,并在消息的正文中显示“Fail user or
Closed. This question needs details or clarity。它当前不接受答案。 想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。 9
我是一名优秀的程序员,十分优秀!