javax.- servlet.jsp.JspException: Cannot find bean: "CommentsUpdated" in jedem Bereich
Struts-config.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!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-beans>
<global-exceptions>
</global-exceptions>
<global-forwards>
<forward name="welcome" path="/Welcome.do"/>
</global-forwards>
<action-mappings>
<action path="/Link" parameter="method" type="com.sicmsb.action.LinkAction">
<forward name="search" path="search"/>
</action>
<action path="/Welcome" forward="/welcomeStruts.jsp"/>
</action-mappings>
<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>
<message-resources parameter="com/vaannila/ApplicationResource"/>
<plug-in className="org.apache.struts.tiles.TilesPlugin" >
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
<set-property property="moduleAware" value="true" />
</plug-in>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
</struts-config>
tiles-defs.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
<tiles-definitions>
<definition name="baseLayout" path="/common-layout.jsp">
<put name="header" value="/header.jsp" />
<put name="body" value="/body.jsp" />
<put name="footer" value="/footer.jsp" />
</definition>
<definition name="search" extends="baseLayout">
<put name="body" value="/searchMyUser.jsp" />
</definition>
</tiles-definitions>
common-layout.jsp:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
</head>
<body>
<table border="1" width="100%" height="100%">
<tr>
<td><tiles:insert attribute="header" /></td>
</tr>
<tr>
<td><tiles:insert attribute="body" /></td>
</tr>
<tr>
<td><tiles:insert attribute="footer" /></td>
</tr>
</table>
</body>
</html>
searchMyUser.jsp:
<%@page import="com.sicmsb.bean.Comments"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ 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-logic" prefix="logic"%>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script>
function submitAdd(form) {
form.submit();
}
function goDetail(commentId) {
var myform = document['detForm'];
//myform.action = "/detail.do";
myform['commentId'].value = commentId;
myform.submit();
}
</script>
<style>
A {
text-decoration: underline;
color: blue;
cursor: pointer;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Search here</title>
</head>
<body>
<form name="detForm" action="details.do" method="post">
<input type="hidden" name="commentId" />
</form>
<h1>Search in MyUser</h1>
<form action="SearchUser.do" method="post">
<table cellpadding="3pt">
<tr>
<td>Insert Name : <html:text name="CommentsUpdated"
property="myUser" size="30"></html:text></td>
</tr>
</table>
<p />
<input type="button" value="Search"
onclick="this.disabled=true; submitAdd(this.form)" />
</form>
<hr />
<table>
<tr>
<th>Name</th>
<th>Email</th>
<th>Webpage</th>
<th>Summary</th>
<th>Comments</th>
</tr>
<logic:iterate id="comment" name="listComments"
type="com.sicmsb.bean.Comments">
<tr>
<td><a onclick="goDetail('<%=comment.getCommentId()%>')"> <bean:write
name="comment" property="myuser" />
</a>
<td>|<bean:write name="comment" property="email" />
<td>|<bean:write name="comment" property="webpage" />
<td>|<bean:write name="comment" property="summary" />
<td>|<bean:write name="comment" property="comments" />
</tr>
</logic:iterate>
</table>
</body>
</html>
LinkAction.java:
package com.sicmsb.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForward;
public class LinkAction extends DispatchAction {
public ActionForward Search(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return mapping.findForward("search");
}
}
Konnte ich die Vorlage erstellen, und rufen Sie in den Formen ohne die "name" Attribute.Es hat funktioniert, dann habe ich gemerkt, ich habe zu nennen, in Formen, die Namen-Attribut (CommentsUpdated
), so dass ich in der Lage, übergeben Sie die Variablen, die für das Graben der Daten aus der Datenbank.Leider wirft es eine Fehlermeldung wie diese:
javax.servlet.jsp.JspException: Cannot find bean: "CommentsUpdated" in any scope
.
ich verstehe, dass das name-Attribut in meiner serachMyUser.jsp
diesen Fehler verursacht, aber ich bin stecken geblieben auf diese Teil, ich habe versucht, eine Suche mit google nach Beispielen, aber alle ich ankommen ist die Formen wurden genannt, ohne Namen-Attribut in es.
- was ist das genaue problem?
- wenn ich laden Sie es im tomcat-server,es wirft eine Fehlermeldung wie diese: 'javax.- servlet.jsp.JspException: Cannot find bean: "CommentsUpdated"' @bencripps
- Sie haben keine form-beans definiert, ich bin mir nicht sicher, was Sie erwarten.
- Nicht verwandt, aber das muss von einem sehr alten tutorial, es ist ziemlich schrecklich.
- schließlich fand ich das Problem, nachdem ich enter name="CommentsUpdated" innerhalb der Tätigkeit in der struts-config.xml..es funktioniert! hoffe, dass dies vielleicht hilfreich für die anderen auch!
- vielen Dank @bencripps!
- vielen Dank @DaveNewton!
Du musst angemeldet sein, um einen Kommentar abzugeben.
schließlich habe das Problem gefunden, nachdem ich enter
name="CommentsUpdated"
im inneren die Aktivität in der struts-config.xml..es funktioniert! hoffe, dass dies vielleicht hilfreich für die anderen auch!Wenn Sie nicht die
name
Eigenschaft in der Aktion-config, die sollte die gleiche sein, wie<form-bean>
Namen, sondern verwendet den Namen in das tagnatürlich hast du eine Ausnahme
Streben instanziieren eine form-bean, und übergeben Sie es der Aktion, wenn die form-Beans und action-Namen konfiguriert sind. Wenn Sie instanziieren möchten Sie es selbst, dann sollte man es in jedem Bereich, bevor der Zugriff in JSP.